【问题标题】:Error on MariaDB transaction attemptMariaDB 事务尝试出错
【发布时间】:2017-08-29 20:38:15
【问题描述】:

我正在尝试在 Fedora 25 上的 MariaDB 10.1.25 和 DBeaver 作为 sql 编辑器上执行此事务。

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

BEGIN;
INSERT INTO quality.tb_account (email, password, registration_date, active, screen_name)
      VALUES ('user11@email.com', '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 ('user11@email.com', '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 ('user11@email.com', '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 ('user11@email.com', 'password', CURRENT_DATE(), TRUE, 'user11');
INSERT INTO quality.tb_account_roles (account_id, role_id) VALUES (LAST_INSERT_ID(), 1);
COMMIT

我做错了什么??为什么每个查询单独工作而不一起工作??

【问题讨论】:

    标签: mariadb dbeaver


    【解决方案1】:

    您必须单独发出每个 SQL 语句——不要尝试将它们连接在一起。

    注意它说“...near 'INSERT...”意味着它到达了“;”但之后就不喜欢找东西了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-14
      • 2020-09-26
      • 2020-05-15
      • 2021-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-20
      相关资源
      最近更新 更多