MySQL - 覆盖现有行
MySQL - Overwriting existing rows
我正在使用 ID 系统,如果 ID 相同,我将尝试覆盖整行。
我在以下 post 中使用了 eggyal 的建议:
SQL - IF EXISTS UPDATE ELSE INSERT INTO
INSERT INTO Data_test (SN, Inspect_Date, Inspector_Name, Cable_Check) VALUES ('SN003400', CURRENT_TIMESTAMP, 'Jack', 1)
ON DUPLICATE KEY UPDATE
SN = VALUES(SN), Inspect_Date = VALUES(Inspect_Date), Inspector_Name= VALUES(Inspector_Name), Cable_Check= VALUES(Cable_Check);
这正是我需要的,但我确实收到了一条错误消息,指出 VALUES() 函数将在未来的版本中删除。
Warning: 'VALUES function' is deprecated and will be removed in a future release. Please use and alias (INSERT INTO ... VALUES(...) AS alias) and replace VALUES(col) in the ON DUPLICATE KEY UPDATE clause with alias.col instead
我是 SQL 的新手,我不太明白这个别名的含义。
我的问题是我可以用什么代替,什么是最佳实践。
您需要为 VALUES 子句添加别名,然后使用该别名
INSERT INTO Data_test (SN, Inspect_Date, Inspector_Name, Cable_Check) VALUES ('SN003400', CURRENT_TIMESTAMP, 'Jack', 1)
ON DUPLICATE KEY UPDATE
SN = VALUES(SN), Inspect_Date = VALUES(Inspect_Date), Inspector_Name= VALUES(Inspector_Name), Cable_Check= VALUES(Cable_Check);
至
INSERT INTO Data_test (SN, Inspect_Date, Inspector_Name, Cable_Check) VALUES ('SN003400', CURRENT_TIMESTAMP, 'Jack', 1) AS newalias
ON DUPLICATE KEY UPDATE
SN = newalias.sn, Inspect_Date = newalias.Inspect_Date, Inspector_Name= newalias.Inspector_Name, Cable_Check= newalias.Cable_Check;
我正在使用 ID 系统,如果 ID 相同,我将尝试覆盖整行。 我在以下 post 中使用了 eggyal 的建议: SQL - IF EXISTS UPDATE ELSE INSERT INTO
INSERT INTO Data_test (SN, Inspect_Date, Inspector_Name, Cable_Check) VALUES ('SN003400', CURRENT_TIMESTAMP, 'Jack', 1)
ON DUPLICATE KEY UPDATE
SN = VALUES(SN), Inspect_Date = VALUES(Inspect_Date), Inspector_Name= VALUES(Inspector_Name), Cable_Check= VALUES(Cable_Check);
这正是我需要的,但我确实收到了一条错误消息,指出 VALUES() 函数将在未来的版本中删除。
Warning: 'VALUES function' is deprecated and will be removed in a future release. Please use and alias (INSERT INTO ... VALUES(...) AS alias) and replace VALUES(col) in the ON DUPLICATE KEY UPDATE clause with alias.col instead
我是 SQL 的新手,我不太明白这个别名的含义。 我的问题是我可以用什么代替,什么是最佳实践。
您需要为 VALUES 子句添加别名,然后使用该别名
INSERT INTO Data_test (SN, Inspect_Date, Inspector_Name, Cable_Check) VALUES ('SN003400', CURRENT_TIMESTAMP, 'Jack', 1)
ON DUPLICATE KEY UPDATE
SN = VALUES(SN), Inspect_Date = VALUES(Inspect_Date), Inspector_Name= VALUES(Inspector_Name), Cable_Check= VALUES(Cable_Check);
至
INSERT INTO Data_test (SN, Inspect_Date, Inspector_Name, Cable_Check) VALUES ('SN003400', CURRENT_TIMESTAMP, 'Jack', 1) AS newalias
ON DUPLICATE KEY UPDATE
SN = newalias.sn, Inspect_Date = newalias.Inspect_Date, Inspector_Name= newalias.Inspector_Name, Cable_Check= newalias.Cable_Check;