gpt4 book ai didi

mysql - 为什么在列上设置键约束会从中删除 "NOT NULL"(MySQL)?

转载 作者:行者123 更新时间:2023-11-29 23:03:39 25 4
gpt4 key购买 nike

我有创建表格的代码:

DROP TABLE IF EXISTS `database`.`creatures_kinds` ;

CREATE TABLE IF NOT EXISTS `database`.`creatures_kinds` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`parent_id` INT UNSIGNED NULL,
`name_en` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`, `parent_id`),
INDEX `parent_id` (`parent_id` ASC),
CONSTRAINT `parent`
FOREIGN KEY (`parent_id`)
REFERENCES `database`.`creatures_kinds` (`id`)
ON DELETE RESTRICT
ON UPDATE CASCADE)
ENGINE = InnoDB;

令我惊讶的是,新创建的表如下所示: enter image description here

为什么 parent_id设置为NOT NULL当我写NULL时在 CREATE TABLE

这和PRIMARY KEY有关系吗?或FOREIGN KEY

我猜parent_id是一个可识别的关系(它指向更一般的生物种类,例如从 pigeonbird ,并且它是 NULL 代表顶级生物种类)。

最佳答案

A PRIMARY KEY is a unique index where all key columns must be defined as NOT NULL. If they are not explicitly declared as NOT NULL, MySQL declares them so implicitly (and silently). MySQL Manual

关于mysql - 为什么在列上设置键约束会从中删除 "NOT NULL"(MySQL)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28382720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com