gpt4 book ai didi

MySQL 错误 1062 : Duplicate entry for key

转载 作者:行者123 更新时间:2023-11-30 21:42:42 25 4
gpt4 key购买 nike

我已经制作了一个 SQL 脚本来创建和填充一些我将与 Django 框架一起使用的表。

在我的date 表中,我创建了具有 UNIQUE 约束的 mois 列,如下所述:

    CREATE TABLE date (
dateID int NOT NULL,
annee int NOT NULL,
mois int NOT NULL,
.
.
CONSTRAINT PK_date PRIMARY KEY (dateID, annee, mois, semaine, jour),
UNIQUE KEY idx_mois (mois),
) Engine=innoDB;

这是 FKs 的定义:

CREATE TABLE astreinte_mensu (
dateID int NOT NULL PRIMARY KEY,
annee int,
mois int,
Personne1Nuit int,
Personne2Nuit int,
Personne1Jour int,
Personne2Jour int,
FOREIGN KEY (annee) REFERENCES date(annee),
FOREIGN KEY (mois) REFERENCES date(mois),
FOREIGN KEY (Personne1Nuit) REFERENCES contact(PersonID),
FOREIGN KEY (Personne2Nuit) REFERENCES contact(PersonID),
FOREIGN KEY (Personne1Jour) REFERENCES contact(PersonID),
FOREIGN KEY (Personne2Jour) REFERENCES contact(PersonID)

) 引擎=innoDB;

稍后在脚本中我有我的程序fill_date:

CREATE PROCEDURE fill_date()
BEGIN
DECLARE currentdate DATE;
DECLARE stopdate DATE;
SET currentdate = CURDATE();
SET stopdate = ADDDATE(currentdate, INTERVAL 1 YEAR);
WHILE currentdate < stopdate DO
INSERT INTO date VALUES (
YEAR(currentdate)*10000+MONTH(currentdate)*100 + DAY(currentdate),
YEAR(currentdate),
MONTH(currentdate),
WEEKOFYEAR(currentdate),
DAY(currentdate));

SET currentdate = ADDDATE(currentdate,INTERVAL 1 DAY);
END WHILE;
END

当我启动文件时,出现与重复条目相关的错误。

所以我的表从 2018 年 6 月到 2019 年 6 月,这导致了错误..

ERROR 1062 (23000) at line 121: Duplicate entry '6' for key 'idx_mois'

有人可以点燃我的蜡烛吗?

编辑:Django 中的参数 ForeignKey.to_field 需要 UNIQUE 约束,因为我想将 Astreinte_mensu.Mois 字段链接到 Date.mois 领域。这样我希望它显示月份而不是完整日期,如 Screenshot of django Admin page 所示。

最佳答案

没有日期组成部分的列;而是使用各种 datetime functionsSELECT 端拆分

优先使用日期算术函数而不是数字和字符串函数。示例 CURDATE() - INTERVAL 2 MONTH

UNIQUE KEY idx_mois (mois) 表示该表中的行数不会超过 12 行?还是您有超过 12 个月的时间?或许您的意思不是UNIQUE

关于MySQL 错误 1062 : Duplicate entry for key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50854119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com