Redshift
ALTER TABLE ALTER COLUMN 不能在事務塊內執行;
我正在嘗試將 redshift 中的列從它更改
varchar(30)
為varchar(100)
它不起作用並引發如下錯誤:使用的命令:
alter table t_name alter column c1 type varchar(300);
錯誤:
[Amazon](500310) Invalid operation: ALTER TABLE ALTER COLUMN cannot run inside a transaction block; [SQL State=25001, DB Errorcode=500310]
這對我有幫助
set autocommit on; alter table schemaname.tablename alter column columnname type varchar(2000); set autocommit off;
從AWS 文件中,檢查您是否違反任何條件:
ALTER COLUMN column_name TYPE new_data_type
- 更改定義為VARCHAR
數據類型的列的大小的子句。考慮以下限制:
- 您不能使用壓縮編碼
BYTEDICT
、RUNLENGTH
、TEXT255
或更改列TEXT32K
。- 您不能將大小減小到小於現有數據的最大大小。
- 您不能使用預設值更改列。
- 您不能使用
UNIQUE
、PRIMARY KEY
或更改列FOREIGN KEY
。- 您不能更改事務塊 (
BEGIN ... END
) 中的列。有關事務的更多資訊,請參閱可序列化隔離。