Php Yii2&;PostgreSQL:如何创建新的jsonb()列并存储现有列值

Php Yii2&;PostgreSQL:如何创建新的jsonb()列并存储现有列值,php,postgresql,yii2,jsonb,Php,Postgresql,Yii2,Jsonb,我有一个带有列language的表。我需要添加一个新列languageb,并存储language列中的值 例如: 那么,我有: $this->addColumn($this->tableName, 'languageb', 'jsonb'); Yii::$app->db->createCommand("UPDATE ".$this->tableName." SET languageb = language;")->execute(); 例外情况是: 欢迎来到

我有一个带有列
language
的表。我需要添加一个新列
languageb
,并存储
language
列中的值

例如:

那么,我有:

$this->addColumn($this->tableName, 'languageb', 'jsonb');
Yii::$app->db->createCommand("UPDATE ".$this->tableName." SET languageb = language;")->execute();
例外情况是:


欢迎来到SO!当你提出一个问题时,试着增加一个最低限度的内容:输入样本、预期输出样本、你尝试了什么、研究和你在哪里卡住了。那个么您尝试了什么呢?
languageb=language::JSONB
JSONB作为字符串传递(字符在postgresql术语中变化),所以您必须向sql语句添加强制转换,并且您的update语句并没有任何
where
子句,它将更新表中的所有行!cske,当我运行“yii migrate”时,我有:异常:SQLSTATE[22P02]:无效文本表示:7错误:类型json的输入语法无效详细信息:标记“en”无效。上下文:JSON数据,第1行:欢迎使用SO!当你提出一个问题时,试着增加一个最低限度的内容:输入样本、预期输出样本、你尝试了什么、研究和你在哪里卡住了。那个么您尝试了什么呢?
languageb=language::JSONB
JSONB作为字符串传递(字符在postgresql术语中变化),所以您必须向sql语句添加强制转换,并且您的update语句并没有任何
where
子句,它将更新表中的所有行!cske,当我运行“yii migrate”时,我有:异常:SQLSTATE[22P02]:无效文本表示:7错误:类型json的输入语法无效详细信息:标记“en”无效。上下文:JSON数据,第1行:en
$this->addColumn($this->tableName, 'languageb', 'jsonb');
Yii::$app->db->createCommand("UPDATE ".$this->tableName." SET languageb = language;")->execute();
Exception: SQLSTATE[42804]: Datatype mismatch: 7 ERROR:  column "languageb" is 
of type jsonb but expression is of type character varying