在Redshift中能否为已创建的表批量添加多个约束?
Redshift中是否支持单语句为已创建表添加多个约束?
简单直接给结论:Amazon Redshift目前不支持通过单条ALTER TABLE语句同时添加多个约束(包括你用到的外键约束)。
你遇到的语法错误正是因为这个限制——Redshift的ALTER TABLE语法对添加约束的操作,一次只能处理一个ADD CONSTRAINT子句。不管是你尝试的用逗号分隔多个ADD CONSTRAINT,还是省略重复的ADD CONSTRAINT只写约束定义的写法,在Redshift里都是不被认可的语法。
目前唯一可行的方式就是像你已经验证成功的那样,分多次执行ALTER TABLE语句,每次添加一个约束:
ALTER TABLE test_user ADD CONSTRAINT FK_1 FOREIGN KEY (group_id) REFERENCES test_group (group_id); ALTER TABLE test_user ADD CONSTRAINT FK_2 FOREIGN KEY (department_id) REFERENCES test_department (department_id);
需要注意的是,Redshift的SQL语法在不少细节上和标准SQL或者其他关系型数据库(比如PostgreSQL)存在差异,这类批量操作的支持度相对有限,遇到这类问题时优先参考Redshift官方文档里的ALTER TABLE语法规范来确认可行的操作方式。
内容的提问来源于stack exchange,提问作者ramya
相关产品推荐
相关产品推荐

