【问题标题】:Nested MySQL select error嵌套的 MySQL 选择错误
【发布时间】:2013-07-17 12:52:29
【问题描述】:

我正在尝试执行以下事务,但在 SELECT 附近出现 mysql 错误。我已经仔细检查了所有列名是否正确。

错误信息

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 2 行的“INSERT INTO 文章(catid、内容、标题、关键字、isactive)(SELEC”附近使用)

SQL

START TRANSACTION; 
INSERT INTO articles (catid,content,title,keywords,isactive) 
(SELECT 1, pendingarticles.content, pendingarticles.title, 
pendingarticles.keywords, 1 
FROM pendingarticles 
WHERE pendingarticles.id=1);
DELETE FROM pendingarticles WHERE id=1; 
COMMIT;

更新

代码本身有效。 INSERT INTO - SELECT 部分和 DELETE 部分。交易出了点问题。也许;?或者我的数据库服务器不能进行交易?

【问题讨论】:

  • 错误说明了什么?
  • 您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 2 行的“INSERT INTO 文章(catid、内容、标题、关键字、isactive)(SELEC”附近使用)
  • 你忘了VALUES, INSERT INTO table (....) VALUES (...); 吗?
  • 您是否尝试仅运行 select 语句?有用吗?
  • 我的 lolcat 说:“MyIZAM 不能进入 tranzactionz”

标签: mysql sql


【解决方案1】:

MyISAM 引擎不支持事务。 MyIsam engine transaction support

要支持事务,您必须更改引擎 f.e.到 InnoDB。 Setting the Storage Engine

【讨论】:

  • 这是我的赢家!在回答之前可以看到他的鼻子的人:D
  • 原来服务器不支持innoDB,所以我必须继续工作没有这个功能。感谢您的帮助。
【解决方案2】:

我认为 Select 周围的括号没有必要。

http://dev.mysql.com/doc/refman/5.6/en/insert.html

START TRANSACTION; 
INSERT INTO articles (catid,content,title,keywords,isactive) 
SELECT 1, pendingarticles.content, pendingarticles.title, 
pendingarticles.keywords, 1 
FROM pendingarticles 
WHERE pendingarticles.id=1;
DELETE FROM pendingarticles WHERE id=1; 
COMMIT; 

【讨论】:

  • 我认为你的意思是括号 () 这些是括号 []
  • @Dukeling 但那里的图片说括号是这些东西[]
  • @Woot4Moo "括号...(也称为括号..."。底线是-您可能不会称它们为括号,但这并不能阻止其他人在调用它们时是正确的括号。
【解决方案3】:

你想要的:

INSERT INTO articles (catid,content,title,keywords,isactive)  
SELECT 1,pendingarticles.content,pendingarticles.title,  
        pendingarticles.keywords,1  
FROM pendingarticles  
WHERE pendingarticles.id=1;  
DELETE FROM pendingarticles WHERE id=1; 

您提供的额外括号不是必需的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 2019-01-06
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多