Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL клонинг запис с уникален индекс

Не, освен ако не искате да навлезете в динамичен SQL. Тъй като си написал "чисто", предполагам, че не.

Редактиране: Тъй като той поиска пример за динамичен SQL, ще го пробвам. В момента не съм свързан с никакви бази данни, така че това е извън главата ми и почти сигурно ще има нужда от ревизия. Но да се надяваме, че ще улови духа на нещата:

-- 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете ограничено количество редове за всеки външен ключ?

  2. Python3 + MySql:Грешка при зареждане на модул MySQLdb:Няма модул с име 'MySQLdb'

  3. Как да запазите историята на актуализациите на записи в MySQL?

  4. Как да групирате данни от масив, върнати от заявка за ляво присъединяване в php?

  5. Как да INSERT Ако ред не съществува (UPSERT) в MySQL