2013-04-11 3 views
0
CREATE TABLE Existing_medical_condition (
    condition VARCHAR(50) NOT NULL, 
    date_of_diagnosis DATE, treatment TEXT, 
    pssn INT NOT NULL, 
    CONSTRAINT emc_key PRIMARY KEY(condition, pssn), 
    FOREIGN KEY(pssn) REFERENCES Patient(ssn) 
); 

дает ошибку:Что не так с синтаксисом?

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'condition VARCHAR(50) NOT NULL, date_of_diagnosis DATE, treatment TEXT, pssn INT' at line 1

+0

Если какой-либо из приведенных ниже ответов был полезен, пожалуйста, подумайте о принятии их в качестве ответа. – Kermit

ответ

7

Состояние является reserved word. Вы должны заключить его в обратные ссылки:

CREATE TABLE Existing_medical_condition (
    `condition` VARCHAR(50) NOT NULL, 
    date_of_diagnosis DATE, 
    treatment TEXT, 
    pssn INT NOT NULL, 
    CONSTRAINT emc_key 
    PRIMARY KEY(condition, pssn), 
    FOREIGN KEY(pssn) REFERENCES Patient(ssn)); 
+1

Голосовать за имя дескриптора. – Jordan

+1

Я думал, что это [условие], но я бы просто держался подальше от зарезервированных слов. – JBrooks

+0

@JBrooks Квадратные скобки для MSSQL. – Kermit

0

Старайтесь избегать зарезервированных ключевых слов для имен столбцов. Если вы все еще хотите, вы можете написать ниже.

CREATE TABLE Existing_medical_condition ([condition] VARCHAR(50) NOT NULL,  date_of_diagnosis DATE, treatment TEXT, 
pssn INT NOT NULL, CONSTRAINT emc_key PRIMARY KEY(condition, pssn), FOREIGN KEY(pssn)  REFERENCES Patient(ssn)); 
Смежные вопросы