递归 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。