如何在Interbase中用单条语句将列添加到指定位置?
在Interbase中添加列并指定位置:单条语句可行吗?
嘿,针对你的问题直接给结论:Interbase目前不支持用单条ALTER TABLE语句同时完成添加新列和指定其位置的操作。
你现在用的两条语句其实就是Interbase官方认可的标准做法:
ALTER TABLE MYTABLE ADD MYCOL INTEGER; ALTER TABLE MYTABLE ALTER MYCOL POSITION 12;
我特意核对了Interbase的官方文档,确实没有语法支持在ADD COLUMN的同时指定POSITION参数——这两个操作在Interbase的语法设计里是完全独立的,必须分两次执行ALTER TABLE。
如果担心这两步操作的原子性(比如怕中间出问题导致表结构不一致),可以把它们包裹在一个事务里:
START TRANSACTION; ALTER TABLE MYTABLE ADD MYCOL INTEGER; ALTER TABLE MYTABLE ALTER MYCOL POSITION 12; COMMIT;
这样要么两步都成功,要么都回滚,能避免出现半完成的表结构状态。
内容的提问来源于stack exchange,提问作者Batsheva Illfeld
相关产品推荐
相关产品推荐

