有没有办法使用 mysql 脚本根据结果集为表创建多个新列
我想为语言表中的每种语言类型创建一个新列。
因此可以通过以下方式找到每种语言:从语言中选择代码;
对于每种语言代码,我希望在另一个表中添加一个新列。
我会手动运行
alter table blah add column text_en_GB; 更改表等等添加列text_fr_FR; ...
我希望我可以使用以下方式构建查询: 从语言中选择 concat ("alter table blah add column text_", code, ";\n"); 然后准备并执行它,但这不适用于语句块。 :(
I want to create a new column for each language type in a language table.
so each language can be found with: select code from languages;
For each language code I want a new column in another table..
Manually I would run
alter table blah add column text_en_GB;
alter table blah add column text_fr_FR;
...
I hoped I could build queries using:
select concat ("alter table blah add column text_", code, ";\n") from languages;
then prepare and execute this but that doesn't work with a block of statements. :(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该查看 CURSORS 。
您可以定义一个过程,为
SELECT
语句(提取您需要的所有语言)打开游标,并在游标的LOOP
内部执行以下操作:ALTER TABLE ADD COLUMN
使用您要提取的所需字符串;)您可以找到一些示例此处
You should take a look at CURSORS .
You can define a procedure that opens a cursor for a
SELECT
statement (the one that extract all the languages that you need) and the inside theLOOP
of the cursor you do anALTER TABLE ADD COLUMN
with the desired strings that you are extracting ;)You can find some examples here
找到了更好的方法:-)
Found a better way :-)