我有下表:
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(256)
);我想在一个查询中添加多个列。我在测试中经常使用H2,但在生产中使用MySQL。两者都使用相同的DDL脚本。
H2和MySQL是否有允许添加几个列的通用语法?
MySQL语法:
ALTER TABLE users
ADD `col1` INT,
ADD `col2` INT,
ADD `col3` INT
AFTER id;H2语法:
ALTER TABLE users
ADD (
`col1` INT,
`col2` INT,
`col3` INT
) AFTER `id`;如果有帮助,我的H2 JDBC是:
// note MODE=MYSQL in the end
jdbc:h2:users;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQLH2贴片在这一讨论范围内应用。
编辑:
当然,我可以使用这种语法(对于大型表来说这很可怕),我必须管理这些AFTER语句以保存列顺序:
ALTER TABLE `users`
ADD `col1` INT AFTER `id`;
ALTER TABLE `users`
ADD `col2` INT AFTER `col1`;
ALTER TABLE `users`
ADD `col3` INT AFTER `col2`;发布于 2019-02-28 17:58:17
据我所知,这方面没有通用的语法。有些事情不能从MySQL转换为H2,“一条语句中的多个添加列”就是其中之一。我同意添加单个列对于大型表来说是可怕的,这就是为什么当我们在我的项目中遇到这样的情况时,我们分别为test (H2)和prod (MySQL)运行迁移。
https://stackoverflow.com/questions/48565633
复制相似问题