MySQL:扩展DATE表

时间:2018-07-12 15:26:23

标签: mysql database calendar mariadb

我使用要扩展的DATE表(日历),例如:

月度表 astreinte_mensu 从2018年7月12日至2019年7月12日

但是现在,我想通过保留已记录的数据将其延长至2020年7月12日。

我已经尝试过的内容: 将整个数据库复制到一个临时数据库。 重新创建数据库。 尝试填充失败

这怎么办?有一个更好的主意吗?

预先谢谢你!

这是表格的结构:

+------------+-------+-----------+---------------+---------------+---------------+---------------+
| dateID     | Annee | Mois      | Personne1Nuit | Personne2Nuit | Personne1Jour | Personne2Jour |
+------------+-------+-----------+---------------+---------------+---------------+---------------+
| 2018-07-12 |  2018 | juillet   |          NULL |          NULL |          NULL |          NULL |
| 2018-08-12 |  2018 | août      |          NULL |          NULL |          NULL |          NULL |
| 2018-09-12 |  2018 | septembre |          NULL |          NULL |          NULL |          NULL |
| 2018-10-12 |  2018 | octobre   |          NULL |          NULL |          NULL |          NULL |
| 2018-11-12 |  2018 | novembre  |          NULL |          NULL |          NULL |          NULL |
| 2018-12-12 |  2018 | décembre  |          NULL |          NULL |          NULL |          NULL |
| 2019-01-12 |  2019 | janvier   |          NULL |          NULL |          NULL |          NULL |
| 2019-02-12 |  2019 | février   |          NULL |          NULL |          NULL |          NULL |
| 2019-03-12 |  2019 | mars      |          NULL |          NULL |          NULL |          NULL |
| 2019-04-12 |  2019 | avril     |          NULL |          NULL |          NULL |          NULL |
| 2019-05-12 |  2019 | mai       |          NULL |          NULL |          NULL |          NULL |
| 2019-06-12 |  2019 | juin      |          NULL |          NULL |          NULL |          NULL |
| 2019-07-12 |  2019 | juillet   |          NULL |          NULL |          NULL |          NULL |
+------------+-------+-----------+---------------+---------------+---------------+---------------+

创建副本:

CREATE TABLE testDB.astreinte_mensu AS (SELECT * FROM astreinte_mensu);

删除表格:

DROP TABLE IF EXISTS astreinte_mensu;

按dateID填充数据:(出现重复条目'0000-00-00'错误

IF EXISTS (SELECT dateID FROM testDB.astreinte_mensu WHERE MONTH(dateID) = MONTH(astreinte_mensu.dateID) AND YEAR(dateID) = YEAR(astreinte_mensu.dateID)) THEN
    SELECT Personne1Nuit FROM testDB.astreinte_mensu WHERE MONTH(dateID) = MONTH(testDB.astreinte_mensu.dateID) AND YEAR(dateID) = YEAR(testDB.astreinte_mensu.dateID);
    INSERT INTO astreinte_mensu (Personne1Nuit) SELECT Personne1Nuit FROM testDB.astreinte_mensu WHERE MONTH(dateID) = MONTH(testDB.astreinte_mensu.dateID) AND YEAR(dateID) = YEAR(testDB.astreinte_mensu.dateID);
END IF;

1 个答案:

答案 0 :(得分:0)

是否可以插入新值?

INSERT INTO astreinte_mensu(dateID,Annee,Mois)值('2019-08-12','2019','août')

INSERT INTO astreinte_mensu(dateID,Annee,Mois)值(“您的值”,“您的值”,“您的值”)