gpt4 book ai didi

sql - PostgreSQL 截断现有字段并更改以添加字符限制

转载 作者:行者123 更新时间:2023-11-29 14:06:16 26 4
gpt4 key购买 nike

我正在更改已填满列的现有表格。在我的表“部分”中,我想对“名称”列设置字符限制,具体类型为 VARCHAR(60)。 但是,之前没有字符限制,我想截断名称列中的任何现有字段,以便它现在在我的 ALTER 脚本之前匹配此限制。

我仍然收到几条错误消息,包括在我的 LEFT 语句中,这是我用来截断“名称”列中的字符串的内容。 LEFT 语句对我声明要截断字符串的方式感到不安,无论我是否将参数放在括号中。这是我目前所处的位置:

DO $$
DECLARE
_name text;
_id uuid;
BEGIN
FOR _name, _id IN SELECT (name, id) FROM %SCHEMA%.section
LOOP
IF (_name > 60)
THEN
SET name = LEFT (_name, 60) WHERE id = _id;
END IF;
END LOOP;
RETURN NEW;
END $$;

完成此操作后,我知道我的 ALTER 脚本非常简单:

ALTER TABLE IF EXISTS %SCHEMA%.section ALTER COLUMN name TYPE VARCHAR(60);

最佳答案

您还可以使用USING 语法来ALTER TABLE。这允许您将它作为 ALTER 的一部分来执行,而不是作为两个单独的命令。

ALTER TABLE myschema.mytable 
ALTER COLUMN mycolumn
TYPE VARCHAR(60)
USING LEFT(mycolumn, 60);

https://www.postgresql.org/docs/9.6/static/sql-altertable.html

关于sql - PostgreSQL 截断现有字段并更改以添加字符限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50472582/

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