MySQL如何仅在保存或插入新数据时更新updated_by字段

时间:2013-06-06 18:57:37

标签: mysql sql insert-update sql-insert on-duplicate-key

我有一个前端PHP应用程序,它将数据保存在MySQL数据库中。 updated_by 值会发生变化,因为它将是更新记录的用户 我想在我们为任何其他列(updated_bysname)插入新值时更新scol2列,并插入或更新记录。
欢迎任何帮助,非常感谢:)


表格信息:

  • test
  • 唯一索引:snamescol2
  • 列: snamescol2updated_atupdated_by
  • 值: name1,col2,03-02-2013,phpuser1


MySQL 5.6信息:
INSERT INTO.. ON DUPLICATE KEY UPDATE
“如果将行作为新行插入,则返回1;如果更新现有行,则返回2 ...”


示例:用户将更新或插入记录

INSERT INTO test(sname) VALUES("name1") ON DUPLICATE KEY UPDATE sname="name1", scol2="col2";
结果:上述查询不会更新任何内容。完善。

INSERT INTO test(sname) VALUES("name1") ON DUPLICATE KEY UPDATE sname="name1", scol2="col22";
结果:上述查询将更新列: scol2 updated_at 。完美。


如何在一个查询中自动更新updated_by列?

INSERT INTO test(sname) VALUES("test1") ON DUPLICATE KEY UPDATE sname="name1", scol2="col2", updated_by="phpuser2222";
这不起作用,每当列 updated_by updated_at 时,它都会更新

有两个查询的可能解决方案:

  1. 使用以下内容插入记录:INSERT ... ON DUPLICATE KEY UPDATE...
  2. 在我的PHP应用程序中获取返回值以了解它是否已[更新或插入],然后使用第二个查询更新字段 updated_by INSERT INTO test(updated_by) VALUES("phpuser2222");

0 个答案:

没有答案