您好,匿名用户
随意问技术百科期待您的加入

MySQL #1064 ALTER添加多个外键约束

0 投票

see here also: http://stackoverflow.com/questions/13...

I've checked it out for 4 times and didn't find any syntax error.

Asking for help here and thx!!!!
and my MySQL version is 5.5

error message is:

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 'ADD CONSTRAINT fk_notification_source_id FOREIGN KEY
(source_id) REFERENCES ' at line 1
CREATE TABLE IF NOT EXISTS `object_type` (
      `type_id` tinyint(1) NOT NULL, 
      `type_name` varchar(45) NOT NULL,
      `desc` varchar(45) NOT NULL,
      PRIMARY KEY (`type_id`) 
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;


    CREATE TABLE IF NOT EXISTS `op_type` (
      `type_id` tinyint(1) NOT NULL,
      `type_name` varchar(45) NOT NULL,
      `desc` varchar(45) NOT NULL,
      PRIMARY KEY (`type_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;


    CREATE TABLE IF NOT EXISTS `user_op` (
      `op_id` int(11) NOT NULL AUTO_INCREMENT,
      `user_id` int(11) NOT NULL,
      `op_type` tinyint(1) NOT NULL,
      `op_data` varchar(45) NOT NULL, 
      `time` datetime NOT NULL,
      PRIMARY KEY (`op_id`, `user_id`),
      KEY `fk_op_user_id_idx` (`user_id`),
      KEY `fk_op_op_type_idx` (`op_type`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


    CREATE TABLE IF NOT EXISTS `notification_type` (
      `type_id` int(11) NOT NULL,
      `type_name` varchar(45) NOT NULL, 
      `desc` varchar(45) NOT NULL, 
      PRIMARY KEY (`type_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


    CREATE TABLE IF NOT EXISTS `user_notification` (
      `notif_id` int(11) NOT NULL, 
      `user_id` int(11) NOT NULL,
      `notif_type` int(11) NOT NULL,
      `source_id` int(11) NOT NULL, 
      `path` varchar(45) NOT NULL,
      `parent_id` int(11) NOT NULL,
      `parent_type` tinyint(1) NOT NULL,
      `count` int(11) NOT NULL,
      `time` datetime NOT NULL, 
      `lasttimeread` datetime NOT NULL,
      PRIMARY KEY (`notif_id`, `user_id`),
      KEY `fk_notification_user_id_idx` (`user_id`),
      KEY `fk_notification_type_id_idx` (`notif_type`),
      KEY `fk_notification_source_id_idx` (`source_id`),
      KEY `fk_notification_parent_type_idx` (`parent_type`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


    ALTER TABLE `user_op`
      ADD CONSTRAINT `fk_op_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
      ADD CONSTRAINT `fk_op_op_type` FOREIGN KEY (`op_type`) REFERENCES `op_type` (`type_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;


    ALTER TABLE `user_notification`
      ADD CONSTRAINT `fk_notification_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
      ADD CONSTRAINT `fk_notification_type_id` FOREIGN KEY (`notif_type`) REFERENCES `notification_type` (`type_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
      ADD CONSTRAINT `fk_notification_source_id` FOREIGN KEY (`source_id`) REFERENCES `user_op` (`op_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
      ADD CONSTRAINT `fk_notification_parent_type` FOREIGN KEY (`parent_type`) REFERENCES `object_type` (`type_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;

thank you!!

p.s my user table is as below:

CREATE TABLE IF NOT EXISTS `user` (
      `user_id` int(11) NOT NULL AUTO_INCREMENT,
      `department_id` int(11) NOT NULL,
      `school_id` int(11) NOT NULL,
      `password` varchar(45) NOT NULL,
      `realname` varchar(45) NOT NULL,
      `familyname` varchar(45) NOT NULL,
      `birthdate` varchar(45) NOT NULL,
      ... ---some other properties.
      PRIMARY KEY (`user_id`),
      KEY `fk_user_department_id_idx` (`department_id`),
      KEY `fk_user_school_id_idx` (`school_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
用户头像 提问 2013年 10月3日 @ 苏尐沫 上等兵 (212 威望)
分享到:

你的回答

隐私保护: 您的邮箱仅用于发送系统通知。
请输入验证码:
    图片验证码看不清?
登录注册后不会被要求输入验证码。

提一个问题:

相关问题

0 投票
1 回复 43 阅读
0 投票
1 回复 37 阅读
用户头像 提问 2012年 12月1日 @ Karthus 上等兵 (227 威望)
0 投票
1 回复 31 阅读
用户头像 提问 2013年 12月5日 @ Miss Fortune 上等兵 (418 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...