ProgrammingError: 1064 (42000): You have an error in your SQL syntax; Unable to create table using foreign key
ProgrammingError: 1064 (42000): You have an error in your SQL syntax; Unable to create table using foreign key
我是 mysql-python 的新手,推荐 this。
以下是我的查询-
TABLES['doctor_details'] = (
"CREATE TABLE `doctor_details` ("
" `dr_id` bigint NOT NULL AUTO_INCREMENT,"
" `doctor_link` varchar(40),"
" `doctor_name` varchar(40) NOT NULL,"
" `doctor_exp_years` float,"
" `doctor_qualification` varchar(40),"
" `doctor_phone_no` varchar(15),"
" `doctor_city` varchar(40),"
" `doctor_state` varchar(40),"
" `doctor_country` varchar(40),"
" `doctor_speciality` varchar(40),"
" `doctor_website_link` varchar(40),"
" `status` int NOT NULL,"
" PRIMARY KEY (`dr_id`)"
") ENGINE=InnoDB")
TABLES['hospital_details'] = (
"CREATE TABLE `hospital_details` ("
" `hospital_id` bigint NOT NULL AUTO_INCREMENT,"
" `dr_id` bigint NOT NULL,"
" `hospital_link` varchar(40),"
" `hospital_name` varchar(40),"
" `hospital_address` varchar(40),"
" `hospital_city` varchar(40),"
" `hospital_state` varchar(40),"
" `hospital_country` varchar(40),"
" `hospital_phone_no` varchar(15),"
" `hospital_speciality` varchar(40),"
" `doctor_link` varchar(40),"
" `hospital_website_link` varchar(40),"
" PRIMARY KEY (`hospital_id`)"
" CONSTRAINT `dr_idfk` FOREIGN KEY (`dr_id`)"
" REFERENCES `doctor_details` (`dr_id`) ON DELETE NO ACTION"
") ENGINE=InnoDB")
self.cursor.execute( TABLES['doctor_details'])
self.cursor.execute( TABLES['hospital_details'])
它给了我以下错误-
ProgrammingError: 1064 (42000): 你的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1
行 'CONSTRAINT dr_idfk
FOREIGN KEY (dr_id
) REFERENCES doctor_details
(`dr_i' 附近使用的正确语法
如果我犯了一些愚蠢的错误,我深表歉意,但欢迎以任何形式提供指导/帮助。
非常感谢。
你在这行后面少了一个逗号
PRIMARY KEY (`hospital_id`)"
应该是
PRIMARY KEY (`hospital_id`),"
话说回来,我不做 Python,所以对我来说这一切看起来都很希腊。
我是 mysql-python 的新手,推荐 this。 以下是我的查询-
TABLES['doctor_details'] = (
"CREATE TABLE `doctor_details` ("
" `dr_id` bigint NOT NULL AUTO_INCREMENT,"
" `doctor_link` varchar(40),"
" `doctor_name` varchar(40) NOT NULL,"
" `doctor_exp_years` float,"
" `doctor_qualification` varchar(40),"
" `doctor_phone_no` varchar(15),"
" `doctor_city` varchar(40),"
" `doctor_state` varchar(40),"
" `doctor_country` varchar(40),"
" `doctor_speciality` varchar(40),"
" `doctor_website_link` varchar(40),"
" `status` int NOT NULL,"
" PRIMARY KEY (`dr_id`)"
") ENGINE=InnoDB")
TABLES['hospital_details'] = (
"CREATE TABLE `hospital_details` ("
" `hospital_id` bigint NOT NULL AUTO_INCREMENT,"
" `dr_id` bigint NOT NULL,"
" `hospital_link` varchar(40),"
" `hospital_name` varchar(40),"
" `hospital_address` varchar(40),"
" `hospital_city` varchar(40),"
" `hospital_state` varchar(40),"
" `hospital_country` varchar(40),"
" `hospital_phone_no` varchar(15),"
" `hospital_speciality` varchar(40),"
" `doctor_link` varchar(40),"
" `hospital_website_link` varchar(40),"
" PRIMARY KEY (`hospital_id`)"
" CONSTRAINT `dr_idfk` FOREIGN KEY (`dr_id`)"
" REFERENCES `doctor_details` (`dr_id`) ON DELETE NO ACTION"
") ENGINE=InnoDB")
self.cursor.execute( TABLES['doctor_details'])
self.cursor.execute( TABLES['hospital_details'])
它给了我以下错误-
ProgrammingError: 1064 (42000): 你的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1
行 'CONSTRAINTdr_idfk
FOREIGN KEY (dr_id
) REFERENCES doctor_details
(`dr_i' 附近使用的正确语法
如果我犯了一些愚蠢的错误,我深表歉意,但欢迎以任何形式提供指导/帮助。
非常感谢。
你在这行后面少了一个逗号
PRIMARY KEY (`hospital_id`)"
应该是
PRIMARY KEY (`hospital_id`),"
话说回来,我不做 Python,所以对我来说这一切看起来都很希腊。