mysql上线脚本之,存在去更新,不存在这则,插入。全自动化脚本

SELECT @id :=id FROM voice_room_tab WHERE name = '萌新' AND tab = '2-17';


INSERT INTO voice_room_tab 
(id, create_time, deleted, update_time, name, tab, url, perfect, appliable_type, count, orders, parent_tab) 
VALUES (@id, 1657797224248, 0, 1657797224248, '萌新', '2-17', '', 1, 0, 5, 512, '2') 
ON DUPLICATE KEY UPDATE 
    create_time = 1657797224248, 
    deleted = 0,
    update_time = 1657797224248,
    name = '萌新',
    url = '',
    perfect = 1,
    appliable_type = 0,
    count = 5,
    orders = 512,
    parent_tab = '2';
		


有时候我们插入的记录是存在主键的,但是主键我们不确定是什么

但是他对应的值是唯一的,所以。

用这个值查询到它对应的主键,如果组件存在则去执行下面的更新语句

如果值不存在,那么第一条语句查出来的@id = null

由于id不允许为空,你插入id = null的记录会被判断为一条新纪录,不会走下面的update

又由于id是自增的,插入id=null的记录会自增一个新id,于是就有了insert操作,同时插入一条新记录

你可能感兴趣的:(mysql,自动化,数据库)