gpt4 book ai didi

mysql - 如果mysql中不存在则插入记录

转载 作者:行者123 更新时间:2023-11-29 21:33:25 25 4
gpt4 key购买 nike

可能这个问题被问了很多次,但在我的情况下不起作用。

表架构

CREATE TABLE `tasks_taskstatus` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(40) NOT NULL,
`video_status` tinyint(1) NOT NULL,
`creative_status` tinyint(1) NOT NULL DEFAULT '0',
`missing_asset` tinyint(1) NOT NULL,
`is_finished` tinyint(1) NOT NULL,
`share_with_am` tinyint(1) NOT NULL,
`ordering` smallint(6) NOT NULL,
`ready_to_begin` tinyint(1) NOT NULL,
`in_progress` tinyint(1) NOT NULL,
`is_conformed` tinyint(1) NOT NULL,
`order_item_equivalent` varchar(60) DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=122 DEFAULT CHARSET=latin1;

如果一条记录尚不存在,我需要在 mysql 数据库中插入一条记录,下面是我尝试使用的查询。

    INSERT IGNORE INTO `tasks_taskstatus` 
SET `name`='Saveout - In Progress',
`video_status`=1,
`creative_status`=0,
`missing_asset`=0,
`is_finished`=0,
`share_with_am`=0,
`ordering`=4,
`ready_to_begin`=0,
`in_progress`=1,
`is_conformed`=0,
`order_item_equivalent`='';

但是每次我运行此查询时都会创建一条新记录,那么上面的语句有什么问题以及如何修改上面的查询以便仅在不存在时插入数据/记录?

最佳答案

您没有INSERT id(这是您的主键),因此 AUTO_INCRMENT 启动并生成一个新的 id 并插入一条新记录。

问问自己:MySQL 如何知道要更新哪条记录?如果您知道这一点(示例答案可能是“按名称”),那么您可以更改 key ,这应该可行。

如果 namevideo_status 的组合必须是唯一的,请创建一个额外的键:

ALTER TABLE `tasks_taskstatus` ADD UNIQUE(`name`, `video_status`);

关于mysql - 如果mysql中不存在则插入记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35079532/

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