首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误1175:从table1中删除PK与table2中PK匹配的行

错误1175:从table1中删除PK与table2中PK匹配的行
EN

Stack Overflow用户
提问于 2016-03-18 05:48:55
回答 2查看 37关注 0票数 0

我正在尝试从table1中删除所有在table2中有匹配PK的行。虽然我的WHERE子句使用了一个键,但我得到了错误1175。我熟悉切换安全模式,但这应该不是问题,因为我的WHERE子句确实包含两个表的私钥。任何要解决的建议都将不胜感激。下面是更多详细信息。

table1结构:

代码语言:javascript
运行
复制
CREATE TABLE `table1` (
  `pkfield` varchar(10) NOT NULL,
  `field1` varchar(3) DEFAULT NULL,
  `field2` varchar(1) DEFAULT NULL,
  `field3` varchar(1) DEFAULT NULL,
  PRIMARY KEY (`pkfield`),
  UNIQUE KEY `pkfield_UNIQUE` (`pkfield`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

table2结构:

代码语言:javascript
运行
复制
CREATE TABLE `table2` (
  `pkfield` varchar(10) NOT NULL,
  PRIMARY KEY (`pkfield`),
  UNIQUE KEY `pkfield_UNIQUE` (`pkfield`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

删除查询:

代码语言:javascript
运行
复制
DELETE table1.*, table2.* FROM table1 INNER JOIN table2
WHERE table1.pkfield=table2.pkfield;

操作输出响应:

代码语言:javascript
运行
复制
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect.

谢谢。

EN

Stack Overflow用户

发布于 2016-03-18 06:43:58

我认为EXISTS子句可以实现您所描述的功能:

代码语言:javascript
运行
复制
DELETE
FROM table1 t1
WHERE EXISTS 
     (SELECT 'x'
        FROM table2 t2
        where t2.pkfield = t1.pkfield)
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36072316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档