gpt4 book ai didi

php - MariaDB INSERT INTO...SELECT...ON DUPLICATE KEY UPDATE 影响 0 行

转载 作者:行者123 更新时间:2023-11-28 23:35:15 24 4
gpt4 key购买 nike

我在 MariaDB 中创建了下表

创建表

CREATE TABLE `email_templates_pending` (
`template_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`template_name` varchar(100) NOT NULL,
`template_data` text,
`modify_type` varchar(16) NOT NULL,
`modify_by` varchar(50) NOT NULL,
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`template_id`),
UNIQUE KEY `template_name` (`template_name`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

并在该表中插入一行 template_id = 1。我想使用下面的 INSERT INTO...SELECT...ON DUPLICATE KEY UPDATE 语句更新行

SQL语句

INSERT INTO email_templates_pending
(template_id, template_name, template_data, modify_by, modify_type)
SELECT template_id, template_name, template_data, 'test@test.com', 'Deleted'
FROM email_templates WHERE template_id= '1'
ON DUPLICATE KEY UPDATE modify_type='Deleted'

但是,当我运行该语句时,它返回成功但 0 行受影响。我有另一个具有不同列名的类似表,可以按预期工作。我已确保 template_id 是主键,所以我不确定还有什么问题?

最佳答案

您在 email_templates_pending 中有 1 行,但在 email_templates 中没有行。

这可能是0行受影响的原因。源表中没有行。

INSERT INTO email_templates_pending ...
SELECT ... FROM email_templates

如果你只想更新 id = 1,你可以使用这个:

INSERT INTO email_templates_pending (template_id, template_name, template_data, modify_by, modify_type) 
SELECT template_id, template_name, template_data, 'test@test.com', 'Deleted' FROM email_templates_pending
ON DUPLICATE KEY UPDATE modify_type='Deleted';

如果只是需要做UPDATE,可能直接UPDATE语句也可以。

UPDATE email_templates_pending SET modify_type='Deleted' WHERE template_id= '1';

关于php - MariaDB INSERT INTO...SELECT...ON DUPLICATE KEY UPDATE 影响 0 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35908841/

24 4 0
文章推荐: java - Tomcat运行时war部署报错
文章推荐: php 购物车缺货 mysql
文章推荐: php - 我的 option

在 的 React 组件中菜单,我需要设置selected反射(reflect)应用程序状态的选项的属性。 在 render() , optionState从状态所有者传递给 SortMenu 组件

  • mysql - 如何让我的存储过程变得又快又漂亮...( select . select. select .. )

    我是初级 Ruby-mysql 程序员,我想知道如何使我的(存储过程)查询结果更快.. 这是我的存储过程我正在使用 SQL_CACHE.. 但我不确定.. 缓存使我的过程更快.. : ( DROP

  • java - Python 中的 select.select 相当于 Java 中的 select.select

    我一直在 Python 中进行套接字编程,以使用 select.select(rfile, wfile, xlist[, timeout]) 处理由已连接的客户端套接字列表发出的请求,并且我还想用 J

  • select - 尊重空白填充以固定宽度显示列 editoptions 时如何获取 jqGrid 中 select 的值

    我在 jqGrid 中有几列 edittype="select"。如何读取特定行中当前选定值的选项值? 例如:当我提供以下选项时,如何获得 FedEx 等的“FE” editoption: { val

  • sql - 内部连接到 select 语句,其中内部 select 语句的 where 子句引用外部 select?

    这是我更大问题的精简查询,但要点是我试图内部联接到一个选择,其中选择受到外部选择的限制。那可能吗?我在内部选择上收到有关多部分标识符 S.Item 和 S.SerialNum 的错误。 要点是这样的,

  • mysql - 如何实现这个:MYSQL SELECT if true select a else select b?

    如果chat.chat_type IS NULL,我想选择user.*,但如果chat.chat_type = 1 我想选择组。* SELECT CASE WHEN ch

  • HTML 移动到