datetime作为mysql数据库中的唯一键
我的数据库表中有一个datetime(名称:lud)变量。它以这种格式注册2011-04-11 07:08:02。现在,我想结合一个article\u id创建一个唯一键:article\u id+lud。 但对于唯一的关键lud部件,只需要2011-04-11 07:08。 例如lud 2011-04-11 07:08+文章id 45试试这个datetime作为mysql数据库中的唯一键,mysql,Mysql,我的数据库表中有一个datetime(名称:lud)变量。它以这种格式注册2011-04-11 07:08:02。现在,我想结合一个article\u id创建一个唯一键:article\u id+lud。 但对于唯一的关键lud部件,只需要2011-04-11 07:08。 例如lud 2011-04-11 07:08+文章id 45试试这个 CONCAT(DATE_FORMAT(lud,'%Y-%m-%d %H:%i'),article_id) 试试这个 CONCAT(DATE_FORMA
CONCAT(DATE_FORMAT(lud,'%Y-%m-%d %H:%i'),article_id)
试试这个
CONCAT(DATE_FORMAT(lud,'%Y-%m-%d %H:%i'),article_id)
作为一种变体,您可以将
lud
字段的类型更改为VARCHAR,并使用index的length选项
例如:
CREATE TABLE mytable(
article_id INT(11) DEFAULT NULL,
lud VARCHAR(19) DEFAULT NULL,
UNIQUE INDEX UK_mytable (article_id, lud (16))
)
ENGINE = INNODB;
INSERT INTO mytable VALUES
(1, '2011-04-11 07:08:11');
Query OK, 1 row affected (0.01 sec)
INSERT INTO mytable VALUES
(1, '2011-04-11 07:09:11');
Query OK, 1 row affected (0.01 sec)
INSERT INTO mytable VALUES
(1, '2011-04-11 07:09:30');
ERROR 1062 (23000): Duplicate entry '1-2011-04-11 07:09' for key 'UK_mytable'
作为一种变体,您可以将
lud
字段的类型更改为VARCHAR,并使用index的length选项
例如:
CREATE TABLE mytable(
article_id INT(11) DEFAULT NULL,
lud VARCHAR(19) DEFAULT NULL,
UNIQUE INDEX UK_mytable (article_id, lud (16))
)
ENGINE = INNODB;
INSERT INTO mytable VALUES
(1, '2011-04-11 07:08:11');
Query OK, 1 row affected (0.01 sec)
INSERT INTO mytable VALUES
(1, '2011-04-11 07:09:11');
Query OK, 1 row affected (0.01 sec)
INSERT INTO mytable VALUES
(1, '2011-04-11 07:09:30');
ERROR 1062 (23000): Duplicate entry '1-2011-04-11 07:09' for key 'UK_mytable'