gpt4 book ai didi

mysql - 如何进行插入或删除?

转载 作者:行者123 更新时间:2023-12-01 00:47:28 25 4
gpt4 key购买 nike

结构表:

id (int primary key)
name (varchar 100)
date(datetime)

对于插入,我使用查询:

INSERT INTO table (name, date) VALUES ('t1','$date');

对于删除行,我使用查询:

DELETE FROM table WHERE name = 't1';

我想知道如何进行 1 个查询:首先插入,如果带有 name 的行已经存在,则删除行,然后再次插入。

请告诉我怎么做?

最佳答案

  1. 在您的 name 列上创建一个 UNIQUE 索引:

    ALTER TABLE `table` ADD UNIQUE (name);
  2. 如果你真的想“删除行并再次插入”,那么你可以使用REPLACE而不是 INSERT。如文档所示:

    REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted.

    因此,在您的情况下:

    REPLACE INTO `table` (name, date) VALUES ('t1','$date');

    但是,如果您不想删除现有记录然后插入一个新记录,而只想更新现有记录,您可以使用 INSERT ... ON DUPLICATE KEY UPDATE :

    INSERT INTO `table` (name, date) VALUES ('t1','$date')
    ON DUPLICATE KEY UPDATE date = VALUES(date);

    最实质性的区别是对您没有提供明确值的列的处理(例如示例中的 id):REPLACE 将导致新的记录具有默认值,而 INSERT ... ON DUPLICATE KEY UPDATE 将导致保留旧值。

关于mysql - 如何进行插入或删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20098483/

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