多条SQL在mysql命令行终端执行报错

发现命令行终端执行的SQL条数多了,后面的SQL会报句法错误。同样的SQL,往mysql提交就不会报错,排除是SQL语法本身的问题。

SQL语句如下
drop table dms_cluster;
drop table dms_user;
drop table dms_user_role;
drop table dms_schema;
drop table dms_user_schema;
drop table dms_schema_user;
drop table dms_workcard;
drop table dms_option_definition;
drop table dms_option;
drop table dms_flow_config;
drop table dms_flow_runtime;
drop table dms_variable;
drop table dms_sql_execute_log;
create table dms_cluster
(
id varchar(64) primary key,
name varchar(64),
tidb varchar(128),
tidb_api varchar(128),
pd varchar(128),
tikv varchar(128),
cluster_status varchar(8),
tag varchar(16),
user varchar(32),
passwd varchar(128),
default_schema_name varchar(64),
gmt_created datetime default now(),
created_by varchar(64),
gmt_updated datetime default now(),
updated_by varchar(64)
);
create unique index udx_cluster_name on dms_cluster (name);
create table dms_user
(
id varchar(64) primary key,
name varchar(64),
email varchar(64),
phone varchar(64),
passwd varchar(256),
gmt_created datetime default now(),
created_by varchar(64),
gmt_updated datetime default now(),
updated_by varchar(64) );
create table dms_user_role ( user_id varchar(64),
role_code varchar(16),
primary key (user_id, role_code) );
create table dms_schema ( id int primary key auto_increment,
name varchar(64),
biz_unit_id varchar(16),
owner_id varchar(64),
dba_id varchar(64),
sys_code varchar(64),
cluster_id varchar(64),
gmt_created datetime default now(),
created_by varchar(64),
gmt_updated datetime default now(),
updated_by varchar(64) );
create table dms_user_schema ( user_id varchar(64),
schema_id int,
primary key (user_id, schema_id) );
create table dms_schema_user ( schema_name varchar(64) primary key,
dba_user varchar(64),
dba_user_passwd varchar(128),
app_user varchar(64),
app_user_passwd varchar(128) );
create table dms_workcard ( id int primary key auto_increment,
workcard_type varchar(32),
workcard_status varchar(16),
schema_id int,
content text,
gmt_created datetime default now(),
created_by varchar(64),
gmt_updated datetime default now(),
updated_by varchar(64) );
create index idx_workcard_type on dms_workcard (workcard_type);
create table dms_option_definition ( code varchar(32) primary key,
command varchar(512),
cache_enabled boolean,
cache_duration_minute int,
remark varchar(64) );
create table dms_option ( option_code varchar(64),
option_name varchar(64),
option_definition_code varchar(32),
ext1 varchar(512),
ext2 varchar(512),
ext3 varchar(512),
ext4 varchar(512),
ext5 varchar(512),
ext6 varchar(512),
ext7 varchar(512),
ext8 varchar(512),
primary key (option_code, option_name, option_definition_code) );
create table dms_flow_config ( workcard_type varchar(32) primary key,
flow_name varchar(64),
flow_desc varchar(256),
gmt_created datetime default now(),
created_by varchar(64),
gmt_updated datetime default now(),
updated_by varchar(64) );
create table dms_flow_runtime ( id int primary key auto_increment,
user_id varchar(64),
workcard_id int,
flow_status varchar(32),
curr_flow_seq int,
next_flow_seq int,
process_time datetime,
gmt_created datetime default now(),
created_by varchar(64),
gmt_updated datetime default now(),
updated_by varchar(64) );
create table dms_variable ( v_name varchar(64) primary key,
v_value varchar(64) );
create table dms_sql_execute_log ( id int primary key auto_increment,
workcard_id int,
sql_statement text,
consumed_ms bigint,
affected_count int,
start_time datetime default now(),
end_time datetime default now(),
execute_status varchar(32),
sql_err_msg text );
create index ddl_exec_log_wi on dms_sql_execute_log (workcard_id);
create index ddl_exec_log_cm on dms_sql_execute_log (consumed_ms);

你好,

这边只执行了 create 语句,没有出现问题,可以在验证下。

未复现.txt (8.3 KB)

好的,谢谢。 我是在Tidb的主机A上提交这个SQL报错,在另一台mysql的主机B上提交SQL不报错;现在我在主机B上,连Tidb,提交SQL不报错,说明不是TiDB的问题。应该是linux设置哪里不一样,导致我通过粘贴SQL语句到mysql终端上,主机B上无法全部接受到所有SQL,所以出现句法错误。我再瞧瞧。

:ok_hand:,可以将 sql 语句通过 ‘\’ 方式换行处理哈。

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。