2015-12-14 18 views
2

Я использую delphi для создания базы данных в MS Access, но когда я нажимаю кнопку, чтобы добавить таблицы в базу данных, это означает, что синтаксис неверен.Ошибка синтаксиса в инструкции create table при использовании внешнего ключа

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

Некоторые из ваших типов данных ошибочны, и вам не хватает нескольких запятых.
Установка размера поля/точности действительна только для типов 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) 

Примечание: Вы должны добавить первичный ключ.

+0

Спасибо, что работает отлично, у меня есть инструкция для первичного ключа как отдельная команда. Вытащил это, пока я не стрелял в это. – CMCK123

Смежные вопросы