gpt4 book ai didi

sql - 将标识列添加到 Snowflake 中的现有表?

转载 作者:行者123 更新时间:2023-12-04 12:14:02 27 4
gpt4 key购买 nike

我在 Snowflake 中有一个表“MY_TABLE”,我想向其中添加一个标识列。我试过

ALTER TABLE "MY_TABLE" 
ADD COLUMN primary_key int IDENTITY(1,1);
但这返回
SQL compilation error: Cannot add column 'PRIMARY_KEY' with non-constant default to non-empty table 'MY_TABLE'.
这在雪花中是不可能的吗?
为了解决这个限制,我尝试创建一个临时版本的表
CREATE OR REPLACE TABLE "MY_TABLE_TEMP" LIKE "MY_TABLE"
ALTER TABLE "MY_TABLE_TEMP" ADD COLUMN primary_key int IDENTITY(1,1)

INSERT INTO "MY_TABLE_TEMP"
SELECT * FROM "MY_TABLE";
但现在我得到了错误
SQL compilation error: Insert value list does not match column list expecting <x+1> but got <x>
哪种有意义,因为我没有传递主键。在这一点上,似乎我可能必须手动将列名的 x 列表(这是一个非常高的数字)输入到 sql 查询中,所以我想知道我是否只是做错了这一切。有没有其他人遇到过类似的问题?

最佳答案

你能试试这个吗

CREATE TABLE TEST_TABLE_TEMP LIKE TEST_TABLE;
ALTER TABLE TEST_TABLE_TEMP ADD COLUMN primary_key int IDENTITY(1,1);

create or replace sequence seq_01 start = 1 increment = 1;

INSERT INTO TEST_TABLE_TEMP
SELECT *,seq_01.NEXTVAL FROM TEST_TABLE;

SELECT * FROM TEST_TABLE_TEMP;

关于sql - 将标识列添加到 Snowflake 中的现有表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63892582/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com