问题
column json
{"size": 120, "family": 5, "colour": 5552, "continent": 2, "animal_name": "Tiger"},
{"size": 200, "family": 5, "colour": 5552, "continent": 2, "animal_name": "Panda"},
{"size": 300, "family": 5, "colour": 5552, "continent": 2, "animal_name": "Lion"}
column name
default_animal
default_animal
default_animal
解决方案
column name
Tiger
Panda
Lion
说明:
在TableName Animal中,一列“json”包含所有相关数据。(所有可用的“动物名称”)
但是“名称”列也应该包含相关的动物名称,而不是“默认动物”。
解决这项任务最有效的方法是什么?
最佳答案
CREATE TABLE animals (id SERIAL PRIMARY KEY,name TEXT,jsondata JSON);
INSERT INTO animals(name,jsondata) VALUES
('default_animal','{"size": 120, "family": 5, "colour": 5552, "continent": 2, "animal_name": "Tiger"}'::JSON),
('default_animal','{"size": 200, "family": 5, "colour": 5552, "continent": 2, "animal_name": "Panda"}'::JSON),
('default_animal','{"size": 300, "family": 5, "colour": 5552, "continent": 2, "animal_name": "Lion"}'::JSON)
;
UPDATE animals SET name = jsondata->>'animal_name' WHERE name = 'default_animal';