2017-08-29 86 views
-1

我试图在MariaDB 10.1.25上对Fedora 25和DBeaver作为sql编辑器执行此事务。MariaDB事务尝试错误

每个查询本身都可以正常工作,但是将它们包装在事务块上时总是失败。

BEGIN; 
INSERT INTO quality.tb_account (email, password, registration_date, active, screen_name) 
     VALUES ('[email protected]', 'password', CURRENT_DATE(), TRUE, 'user11'); 
INSERT INTO quality.tb_account_roles (account_id, role_id) 
     VALUES (LAST_INSERT_ID(), 1); 
COMMIT; 

的错误是下一个:

SQL Error [1064] [42000]: (conn:2) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INSERT INTO quality.tb_account (email, password, registration_date, active, scre' at line 2 
Query is : BEGIN; 
INSERT INTO quality.tb_account (email, password, registration_date, active, screen_name) VALUES ('[email protected]', 'password', CURRENT_DATE(), TRUE, 'user11'); 
INSERT INTO quality.tb_account_roles (account_id, role_id) VALUES (LAST_INSERT_ID(), 1); 
COMMIT 
    (conn:2) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INSERT INTO quality.tb_account (email, password, registration_date, active, scre' at line 2 
Query is : BEGIN; 
INSERT INTO quality.tb_account (email, password, registration_date, active, screen_name) VALUES ('[email protected]', 'password', CURRENT_DATE(), TRUE, 'user11'); 
INSERT INTO quality.tb_account_roles (account_id, role_id) VALUES (LAST_INSERT_ID(), 1); 
COMMIT 
    org.mariadb.jdbc.internal.util.dao.QueryException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INSERT INTO quality.tb_account (email, password, registration_date, active, scre' at line 2 
Query is : BEGIN; 
INSERT INTO quality.tb_account (email, password, registration_date, active, screen_name) VALUES ('[email protected]', 'password', CURRENT_DATE(), TRUE, 'user11'); 
INSERT INTO quality.tb_account_roles (account_id, role_id) VALUES (LAST_INSERT_ID(), 1); 
COMMIT 

我在做什么错?为什么每个查询单独工作,但不是在一起?

回答

0

您必须自行发出每个SQL语句 - 不要试图将它们连接在一起。

请注意,它表示“...在'INSERT ...”附近,意思是它到达了“;”但之后不喜欢找东西。

+0

感谢您的帮助! – rojoherrero