You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更新TEST表TESTCOLUMN列默认值并保留扩展现有数组数据?

实现步骤

1. 先备份数据(必须操作,防止数据丢失)

针对不同数据库执行对应备份命令:

  • MySQL:mysqldump -u 用户名 -p 数据库名 TEST > test_backup.sql
  • PostgreSQL:pg_dump -U 用户名 -d 数据库名 -t TEST > test_backup.sql
  • SQL Server:BACKUP DATABASE 数据库名 TO DISK = 'C:\test_backup.bak' WITH DIFFERENTIAL;

2. 更新现有数据,在数组末尾追加两个0

根据你的数据库类型选择对应的SQL语句:

若为PostgreSQL(数组类型列)

UPDATE TEST 
SET TESTCOLUMN = TESTCOLUMN || ARRAY[0, 0];

若为MySQL(JSON类型列)

UPDATE TEST 
SET TESTCOLUMN = JSON_ARRAY_APPEND(TESTCOLUMN, '$', 0, 0);

若为SQL Server(JSON类型列)

方法一:分两次追加

UPDATE TEST SET TESTCOLUMN = JSON_MODIFY(TESTCOLUMN, 'append $', 0);
UPDATE TEST SET TESTCOLUMN = JSON_MODIFY(TESTCOLUMN, 'append $', 0);

方法二:直接拼接JSON字符串

UPDATE TEST 
SET TESTCOLUMN = JSON_QUERY(CONCAT(LEFT(TESTCOLUMN, LEN(TESTCOLUMN)-1), ',0,0]'));

3. 修改列的默认值

根据数据库类型执行对应语句:

PostgreSQL

ALTER TABLE TEST 
ALTER COLUMN TESTCOLUMN SET DEFAULT ARRAY[0, 0, 0, 0, 0];

MySQL

ALTER TABLE TEST 
ALTER COLUMN TESTCOLUMN SET DEFAULT '[0, 0, 0, 0, 0]';

SQL Server

ALTER TABLE TEST 
ALTER COLUMN TESTCOLUMN SET DEFAULT '[0, 0, 0, 0, 0]';

验证操作结果

执行以下语句确认数据更新和默认值生效:

-- 查看现有数据是否已扩展
SELECT TESTCOLUMN FROM TEST;
-- 验证默认值(插入一条空数据测试)
INSERT INTO TEST DEFAULT VALUES;
SELECT TESTCOLUMN FROM TEST WHERE 你的主键列 IS NULL; -- 替换为实际主键列名

内容的提问来源于stack exchange,提问作者user22717183

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 14:10:09