Sql 如何向表中添加代理自动递增键?

Sql 如何向表中添加代理自动递增键?,sql,apache-spark,apache-spark-sql,Sql,Apache Spark,Apache Spark Sql,如何通过spark sql向表中添加代理键(自动增加的键,如1,2,3,4…) 我已经这样做了 SELECT IDENTITY(1,1) AS table_id, table_1.* FROM table_1 但是它不起作用。您显示的语法是针对SQL Server的。在Spark SQL中,可以使用row\u number()向结果集中添加列。比如: SELECT ROW_NUMBER() OVER (ORDER BY col) as table_id, t1.* FROM table_1 t

如何通过spark sql向表中添加代理键(自动增加的键,如1,2,3,4…)

我已经这样做了

SELECT IDENTITY(1,1) AS table_id, table_1.*
FROM table_1

但是它不起作用。

您显示的语法是针对SQL Server的。在Spark SQL中,可以使用
row\u number()
向结果集中添加列。比如:

SELECT ROW_NUMBER() OVER (ORDER BY col) as table_id, t1.*
FROM table_1 t1;
Spark有一个名为的方法。这比
行数
更简单,更适合您的目的。您可以这样使用它:

SELECT MONOTONICALLY_INCREASING_ID() AS table_id, t1.*
FROM table_1 t1
ORDER BY <columns>
选择单调递增的\u ID()作为表\u ID,t1*
来自表1 t1
订购人
另外,不要忘记添加
orderby
,以使代理密钥可复制