Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Bản ghi sao chép SQL với một chỉ mục duy nhất

Không trừ khi bạn muốn sử dụng SQL động. Vì bạn đã viết "sạch", tôi sẽ cho là không.

Chỉnh sửa: Vì anh ấy đã yêu cầu một ví dụ SQL động, tôi sẽ xem xét nó. Tôi không kết nối với bất kỳ cơ sở dữ liệu nào vào lúc này, vì vậy đây là điều tôi nghĩ và gần như chắc chắn sẽ cần sửa đổi. Nhưng hy vọng nó nắm bắt được tinh thần của mọi thứ:

-- 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. mysql chuyển đổi thời gian 12 giờ thành 24 giờ

  2. mysql STR_TO_DATE không hoạt động

  3. cách giữ giá trị băm trong cột bảng trong đường ray

  4. Truy vấn có nhiều lượt thích

  5. Có ai biết ý nghĩa đằng sau thông báo lỗi php này không?