繁体   English   中英

如何将序号添加到空的SQL表

[英]How to add sequential numbers to an empty SQL table

我正在尝试将1到200M的序列号添加到一个空的SQL表中。 该数字太大,无法用Excel列出。 我也在使用文件大小限制较低的Cpanel。 有什么办法使用sql查询吗? (注意:其他帖子对此提供了示例代码,但它们似乎不是可以在cpanel中使用的标准SQL查询。)

任何建议将被认真考虑。

最简单的方法是使用information_schema.columns视图。
用于100.000行的简单SQLFiddle演示 (仅十万,因为我不想杀死SQLFiddle)-只需几秒钟:

SELECT @x:=@x+1
FROM (SELECT @x:=0) xx,
information_schema.columns a,
information_schema.columns b,
information_schema.columns c,
information_schema.columns d
LIMIT 10000;

如果您的数据库有100列,那么4个表的交叉连接可以提供100 ^ 4 = 100000000个潜在行,这远远超出了您的需要。

一个迭代的解决方案是:

BEGIN
DECLARE @Counter int=0
WHILE @Counter <= 2000000
    BEGIN
    INSERT tableName(columnName)
    VALUES (@Counter)
    SET @Counter=@Counter+1
    END
END

该解决方案的缺点是它将对您的数据库执行2百万条插入语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM