我想将一个新列添加到一个表中,并使用其他表的列中的默认值。
1st Table 'sensors'
-------------------------------------------------------------
id sensorId location city country userId
-------------------------------------------------------------
2nd Table sensordata
-------------------------------
id sensorId dataValues
-------------------------------
我想在sensordata表中添加一列,其默认值是sensorId相同的位置。
我怎样才能做到这一点?
像这样
ALTER TABLE `sensordata` s ADD `location` VARCHAR( 200 ) NOT NULL DEFAULT
(SELECT location from sensors s WHERE s.sensorId = d.sensorId) AFTER `dataValues`
请不要告诉我为什么我需要重复数据,这是有原因的:)
您需要2个步骤
步骤1
ALTER TABLE `sensordata` ADD `location` VARCHAR( 200 ) ;
第2步
update sensordata sd
join sensors s on s.sensorId = sd.sensorId
set sd.location = s.location
更新:这是我所做的,并且工作正常
ALTER TABLE `sensordata` ADD `location` VARCHAR(200) NULL DEFAULT NULL AFTER `dataValues`;
UPDATE sensordata d SET d.location = (SELECT s.location from sensors s WHERE s.sensorID = d.sensorID);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句