我在 sql 中創建了一個 enun
CREATE TYPE asset_type AS ENUM (
'bat',
'ball'
);
我想將價值球棒切換為球
'ball'
'bat'
我們如何在sql中切換列舉值
uj5u.com熱心網友回復:
ALTER TYPE asset_type RENAME VALUE 'bat' TO 'scratch';
ALTER TYPE asset_type RENAME VALUE 'ball' TO 'bat';
ALTER TYPE asset_type RENAME VALUE 'scratch' TO 'ball';
不知道重點是什么。
uj5u.com熱心網友回復:
您是否想做類似的事情
UPDATE table_name SET column_name =
CASE
WHEN column_name = 'bat' THEN 'ball'
WHEN column_name = 'ball' THEN 'bat'
END
可能有條件,例如
WHERE player_name = 'Jack'
uj5u.com熱心網友回復:
在這里,我們使用資產表和外鍵,以便只能在列中輸入資產表中的有效值。
如果資產中的類的值超過 2 個,建議的更新方法將不起作用,但可以修改為使用資產的數字,然后執行類似的操作ID = CASE (ID = max ID) then ID = 1 ELSE ID 1
create table assets( class varchar(10), vall varchar(10), constraint pk_enums primary key (class,vall)); insert into assets values ('enum1','bat'), ('enum1','ball');
create table sample ( clas varchar(10), val varchar(10), foreign key (clas,val) references assets(class,vall) ); insert into sample values('enum1','bat');
select * from sample;類 | 值 :---- | :-- 列舉1 | 蝙蝠
update sample set val = vall from assets where class = class and vall <> val;
select * from sample;類 | 值 :---- | :--- 列舉1 | 球
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/446053.html
標籤:sql PostgreSQL 哈苏拉
