外键约束字段设置为NULL不起作用

时间:2018-06-22 06:09:01

标签: mysql sql foreign-keys

我想允许对具有外键约束集的字段使用NULL值。

这是表模式:

 CREATE TABLE `internal_team_head` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `internal_team_id` int(11) NOT NULL,
  `users_id` int(11) NOT NULL DEFAULT '0',
  `type` enum('lead','project_manager') NOT NULL,
  `updated_by` int(6) DEFAULT NULL,
  `updated_on` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`,`internal_team_id`,`users_id`,`type`),
  KEY `fk_internal_team_has_users_users1_idx` (`users_id`),
  KEY `fk_internal_team_has_users_internal_team1_idx` (`internal_team_id`),
  CONSTRAINT `fk_internal_team_has_users_internal_team1` FOREIGN KEY (`internal_team_id`) REFERENCES `internal_team` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8

现在,我想更改users_id以允许使用NULL值并将其默认设置为NULL。

ALTER TABLE `internal_team_head` CHANGE `users_id` `users_id` INT(11) NULL DEFAULT NULL;

Alter查询成功执行,但是users_id Null属性仍然设置为No,默认值设置为0

如何执行更改?

1 个答案:

答案 0 :(得分:1)

首先删除外键约束,然后运行您的alter语句应该起作用。之后,您可以再次添加约束。