使用外键时create table语句中的语法错误

时间:2015-12-14 19:28:48

标签: delphi ms-access

我正在使用delphi在MS Access中创建数据库,但是当我单击按钮将表添加到数据库时,它会将语法标记为不正确。

cs:='CREATE TABLE tblRecordOfGames ('+
   'Username Varchar CONSTRAINT FK_Username '+
   'REFERENCES tblUsers (Username),'+
   'TimeOfGame Date/Time,'+
   'MovesTaken Integer(3)'+
   'OptimalMoves Integer(3)'+
   'PercentageofOptimalMoves Double(5)'+
   'CreditsWon Integer'+
   'CreditsLost Integer)';

ADOCommand1.CommandText:=cs;
ADOCommand1.Execute;

我认为这是我试图添加密钥的方式的一个问题,但我一直很难找到一个有效的例子。

1 个答案:

答案 0 :(得分:1)

您的一些数据类型错误,并且您缺少几个逗号 设置字段大小/精度仅对TEXT和DECIMAL类型有效。

请参阅http://allenbrowne.com/ser-49.html(DDL专栏)。

但您的CONSTRAINT是有效的。 :)

试试这个:

CREATE TABLE tblRecordOfGames (
   Username Text(50) CONSTRAINT FK_Username REFERENCES tblUsers (Username),
   TimeOfGame DateTime,
   MovesTaken Integer,
   OptimalMoves Integer,
   PercentageofOptimalMoves Double,
   CreditsWon Integer,
   CreditsLost Integer)

注意:您应该添加主键。