【问题标题】:What is the best way to insert into and update a single row table in MySQL?在 MySQL 中插入和更新单行表的最佳方法是什么?
【发布时间】:2010-09-22 14:52:59
【问题描述】:

我有一个只有一行的 MySQL 表。第一次插入该行以及后续更新时,我的语句应该是什么?我尝试了主键等于 1 的插入,但这并没有考虑到第一次没有行存在的情况。

【问题讨论】:

    标签: mysql insert


    【解决方案1】:

    如果您的表只有一行,您可以考虑在数据库创建脚本中将初始数据预加载到该行中。然后您的代码将只需要发出 UPDATE 语句。此外,您不需要主键列,因为只有一行。然后,您也可以在不需要 WHERE 子句的情况下发出 UPDATE 语句。

    【讨论】:

    • 感谢您的建议。不幸的是,这是一个 Wordpress 插件,并且 db 会话已经打开并初始化。
    【解决方案2】:
    INSERT INTO table(col1,col2,col3) VALUES(val1,val2,val3) ON DUPLICATE KEY UPDATE col1 = val1, col2 = val2, col3 = val3;
    

    【讨论】:

    • 这样覆盖 pk/ck/ unique cols 是否 100% 安全?我知道它有效。我已经在 pk 和唯一性上对其进行了测试。但它是否安全,当它停止工作时是否有任何极端情况等。我在this 问题中问过同样的问题。
    猜你喜欢
    • 2014-12-14
    • 2022-12-07
    • 2017-03-12
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    相关资源
    最近更新 更多