Mysql id值为空的SQL insert
如何将符合条件但重置id值的sql行插入到新表中。换句话说,复制行,但重置id值 这是我当前的sqlMysql id值为空的SQL insert,mysql,sql,database,insert,Mysql,Sql,Database,Insert,如何将符合条件但重置id值的sql行插入到新表中。换句话说,复制行,但重置id值 这是我当前的sql INSERT INTO followers_lost SELECT * FROM followers WHERE pk = $pk 我试图设置id=null和值(0),但两者都不起作用 您可以创建列,然后更新它: SET @new_id=0; UPDATE your_table SET id = @new_id := @new_id + 1 where id = 0 好的,根据你的评论,我认
INSERT INTO followers_lost SELECT * FROM followers WHERE pk = $pk
我试图设置id=null和值(0),但两者都不起作用 您可以创建列,然后更新它:
SET @new_id=0;
UPDATE your_table
SET id = @new_id := @new_id + 1
where id = 0
好的,根据你的评论,我认为你是在尝试从追随者那里获取所有或部分字段,除了PK,然后将它们放入追随者中,在那里它们等于某个PK。如果需要多个PK,则需要将where子句更改为IN语句,而不是equal语句,并相应地调整值
CREATE TABLE dbo.UAT_Followers_Lost (PK INT IDENTITY(1,1),DATA VARCHAR(50) )
CREATE TABLE dbo.UAT_Followers (PK INT IDENTITY(1,1),DATA VARCHAR(50) )
INSERT INTO dbo.UAT_Followers
(DATA)
SELECT 'Jan'
UNION ALL
SELECT 'Feb'
UNION ALL
SELECT 'Mar'
DECLARE @PK INT
SET @PK = 1
INSERT INTO dbo.UAT_Followers_Lost
(Data)
SELECT Data
FROM dbo.UAT_Followers
WHERE PK = @PK
由于希望插入除标识之外的所有列,因此必须执行以下操作:指定插入上的所有非标识列:
INSERT INTO [followers_lost] ([Column1],[column2]...{but not the identity
column})
SELECT [Column1],[column2]...{but not the identity column} FROM followers WHERE
pk = $pk
ID是指标识栏吗?是否需要具有新标识值的新行?您能提供该表的架构吗?@JBdev我正在尝试将一行从一个表移动到另一个表,而不复制ID条目。对这是标识列我正在尝试在不复制ID条目的情况下将一行从一个表移动到另一个表。您尝试做的关键是您必须限定要插入表中的所有字段,并确保在将数据放入字段的select语句中限定这些字段。嗨,Ryan,不是真的。JBdev上面的帖子确实解决了我的问题。谢谢你的帮助