递归 Table 可为空 parent_id
Recursive Table nullable parent_id
CREATE TABLE IF NOT EXISTS `db_teamup`.`programming_languages` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '',
`name` VARCHAR(255) NOT NULL COMMENT '',
`count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '',
`parent_id` INT UNSIGNED NULL COMMENT '',
`icon_path` VARCHAR(255) NOT NULL DEFAULT 'default_icon.svg' COMMENT '',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`, `parent_id`) COMMENT '',
INDEX `fk_programming_languages_programming_language_parent_idx` (`parent_id` ASC) COMMENT '',
CONSTRAINT `fk_programming_languages_programming_language_parent_id`
FOREIGN KEY (`parent_id`)
REFERENCES `db_teamup`.`programming_languages` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
我正在尝试进行递归 mysql table,但是当我在 workbench 上执行脚本时,它将 parent_id 设置为非空,是在 运行 我的脚本之前有一个我没有执行的设置或命令?
最糟糕的是它使默认值为 0.
谢谢
主键('id')
我认为 'parent_id' 不应该是您的主键的一部分。如果是,它就不能为 NULL。
CREATE TABLE IF NOT EXISTS `db_teamup`.`programming_languages` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '',
`name` VARCHAR(255) NOT NULL COMMENT '',
`count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '',
`parent_id` INT UNSIGNED NULL COMMENT '',
`icon_path` VARCHAR(255) NOT NULL DEFAULT 'default_icon.svg' COMMENT '',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`, `parent_id`) COMMENT '',
INDEX `fk_programming_languages_programming_language_parent_idx` (`parent_id` ASC) COMMENT '',
CONSTRAINT `fk_programming_languages_programming_language_parent_id`
FOREIGN KEY (`parent_id`)
REFERENCES `db_teamup`.`programming_languages` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
我正在尝试进行递归 mysql table,但是当我在 workbench 上执行脚本时,它将 parent_id 设置为非空,是在 运行 我的脚本之前有一个我没有执行的设置或命令? 最糟糕的是它使默认值为 0.
谢谢
主键('id')
我认为 'parent_id' 不应该是您的主键的一部分。如果是,它就不能为 NULL。