小编ada*_*dam的帖子

MySQL插入选择不强制执行NOT NULL约束

我遇到了MySQL 5.6 InnoDb在运行时忽略NOT NULL外键的问题INSERT INTO xxx (col) SELECT ....在以其他格式运行insert语句时,可以正确实施约束.启用外键检查,并且sql_mode = STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION

这是一个例子:

CREATE TABLE Test_Parent
(
    id BIGINT(18) UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
    dummy VARCHAR(255)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci
    COMMENT 'Test parent table';

CREATE TABLE Test_Child
(
    id BIGINT(18) unsigned PRIMARY KEY NOT NULL AUTO_INCREMENT,
    fid BIGINT UNSIGNED NOT NULL,
    FOREIGN KEY Fk_Test_Parent_01(fid) REFERENCES Test_Parent(id)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci
    COMMENT …
Run Code Online (Sandbox Code Playgroud)

mysql constraints foreign-keys notnull insert-select

6
推荐指数
1
解决办法
270
查看次数