这是我对这个网站的第一个问题,如果我使用了错误的关键字,我很抱歉。几天以来,我一直遇到一个问题。
问题是,我有一个名为 property 的 MYSQL 表,我想在其中添加一个 ref 编号,该编号将是一个唯一的 6 位非增量编号,因此我更改该表以添加一个名为的新列property_ref
,其默认值为 1。
ALTER TABLE property ADD uniqueIdentifier INT DEFAULT (1) ;
然后我编写一个脚本首先生成一个数字,然后将其检查到 db 是否存在,如果不存在,则使用随机数更新行
这是我试过的片段,
with cte as (
select subIdentifier, id from (
SELECT id, LPAD(FLOOR(RAND() * (999999 - 100000) + 100000), 6, 0) AS subIdentifier
FROM property as p1
WHERE "subIdentifier" NOT IN (SELECT uniqueIdentifier FROM property as p2)
) as innerTable group by subIdentifier
)
UPDATE property SET uniqueIdentifier = (
select subIdentifier from cte as c where c.id = property.id
) where property.id != ''
此查询为几乎所有行返回一组记录,但我有一个总共 20000 个条目的表,但此查询填充了 ~19000,其余行为空。
这是当前输出[当前结果图片]
如果有人可以提供帮助,我非常感谢。
谢谢