【问题标题】:Mysql unique key does not work [duplicate]Mysql唯一键不起作用[重复]
【发布时间】:2017-04-22 04:57:12
【问题描述】:

这是我的桌子:

CREATE TABLE `loan_table` (
 `ID` bigint(38) NOT NULL AUTO_INCREMENT,
 `LOAN_ID` bigint(38) DEFAULT NULL,
 `PLAN_ID` bigint(38) NOT NULL,
 `EXT_LOAN_APP_ID` bigint(38) DEFAULT NULL,
 `REDISTRIBUTE_TIME` datetime DEFAULT NULL,
 PRIMARY KEY (`ID`),
 UNIQUE KEY `IDX_UN_LOAN_PLAN_APP`(`LOAN_ID`,`PLAN_ID`,`EXT_LOAN_APP_ID`,`REDISTRIBUTE_TIME`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;

我在 4 列(LOAN_ID、PLAN_ID、EXT_LOAN_APP_ID、REDISTRIBUTE_TIME)上添加了唯一键,但我可以一次又一次地执行下面的插入 sql。

INSERT INTO `loan_table` (`LOAN_ID`, `PLAN_ID`,`EXT_LOAN_APP_ID`, `REDISTRIBUTE_TIME`)
VALUES
( 435870, 0,  2369, NULL);

【问题讨论】:

  • 当然可以。 null 是一个特殊值。这里没有问题,它按预期工作,只是你没有正确阅读文档。

标签: mysql


【解决方案1】:

在唯一索引中,mysql将NULL视为唯一值,所以这些值可以重复插入

( 435870, 0,  2369, NULL);

使列 NOT NULL 和 DEFAULT 为空字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 2018-06-05
    • 2014-01-12
    • 1970-01-01
    • 2013-09-07
    • 2014-01-27
    • 1970-01-01
    相关资源
    最近更新 更多