递归表可为空的parent_id

时间:2016-03-06 23:34:35

标签: mysql sql recursive-datastructures

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表,但是当我执行脚本时,在workbench上,它将parent_id设置为not null,是否存在我在运行脚本之前未执行的设置或命令? 最糟糕的是它使默认值为0。

谢谢

1 个答案:

答案 0 :(得分:1)

PRIMARY KEY('id')

我认为'parent_id'不应该是主键的一部分。如果是的话,它将无法为NULL。