非常简单的问题。我需要更改数据库中的一堆表来添加新列。这是我的代码:
# the maximum character length we allow for chat is 14
SET @maxlen = 14;
alter table tbl1 add chat varchar(@maxlen);
alter table tbl2 add chat varchar(@maxlen);
alter table tbl3 add chat varchar(@maxlen);
alter table tbl4 add chat varchar(@maxlen);
alter table tbl5 add chat varchar(@maxlen);
我收到错误:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'maxlen)' at line 1
它在错误代码中显示第 1 行,但错误发生在第 5 行,这是第一个 alter 语句。我怎样才能在这里做我想做的事情?
你所要求的需要动态SQL。
考虑:
set @maxlen = 14;
set @sql = concat('alter table tbl1 add chat varchar(', @maxlen, ')');
prepare stmt from @sql;
execute stmt;
deallocate prepare stmt;