sql >> Database teknologi >  >> RDS >> Mysql

SQL-klonpost med et unikt indeks

Ikke medmindre du ønsker at komme ind i dynamisk SQL. Da du skrev "ren", går jeg ud fra, at det ikke er.

Rediger: Da han bad om et dynamisk SQL-eksempel, vil jeg tage et stik på det. Jeg er ikke forbundet til nogen databaser i øjeblikket, så dette er helt i top og vil næsten helt sikkert trænge til revision. Men forhåbentlig fanger det tingenes ånd:

-- Get list of columns in table
SELECT INTO #t
EXEC sp_columns @table_name = N'TargetTable'

-- Create a comma-delimited string excluding the identity column
DECLARE @cols varchar(MAX)
SELECT @cols = COALESCE(@cols+',' ,'') + COLUMN_NAME FROM #t WHERE COLUMN_NAME <> 'id'

-- Construct dynamic SQL statement
DECLARE @sql varchar(MAX)
SET @sql = 'INSERT INTO TargetTable (' + @cols + ') ' +
    'SELECT ' + @cols + ' FROM TargetTable WHERE SomeCondition'

PRINT @sql -- for debugging
EXEC(@sql)


  1. MySQL:Indsæt post, hvis den ikke findes i tabellen

  2. MySQL JOIN flere tabeller med LIMIT sidste tabel efter dato og klokkeslæt pr. resultat

  3. Hvordan bruger man REGEXP med escape-sekvenser som ordgrænse?

  4. MySQL - SELECT ... WHERE id IN (..) - korrekt rækkefølge