我需要添加一个不为null的新列,它的值应该与其他字段成比例。现在的比例是一样的,但将来可能会有所不同
我现在的剧本
ALTER TABLE myTable ADD COLUMN (basePrice FLOAT(10,2) NULL);
UPDATE myTable set basePrice = 0,9 * price;
ALTER TABLE myTable MODIFY COLUMN (basePrice FLOAT(10,2) NOT NULL);
但是我想知道是否有一种方法可以在一个查询中实现这一点,以减少所需的时间并避免锁定。
1条答案
按热度按时间mkshixfv1#
需要注意的几点:
这就去掉了一个
ALTERs:
```ALTER TABLE myTable ADD COLUMN basePrice FLOAT(10,2) NOT NULL DEFAULT '0';
UPDATE myTable set basePrice = 0,9 * price;