2016-07-22 75 views
-1

当试图创建一个表,并与下面的查询修改它:Mysql的外键

CREATE TABLE `sms_codes` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `user_id` int(11) NOT NULL, 
    `code` varchar(6) NOT NULL, 
    `status` int(1) NOT NULL DEFAULT '0', 
    `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`), 
    KEY `user_id` (`user_id`) 
) 

ALTER TABLE `sms_codes` 
    ADD CONSTRAINT `sms_codes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; 

我得到了错误:

#1064 - 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 'ALTER TABLE `sms_codes` ADD CONSTRAINT `sms_codes_ibfk_1` FOREIGN KEY (`user_' at line 11

+3

添加分号的'CREATE结束后TABLE'语句。 –

回答

0

每个语句需要用分隔;分离。所以添加;CREATE TABLE结束以同样的方式,你怎么在ALTER TABLE声明的末尾添加;

在这一行:

KEY `user_id` (`user_id`) 
); <-- here