Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memasukkan Data dengan Cekap ke dalam Jadual Pelayan SQL Berbilang Secara serentak?

Bagaimana untuk Memasukkan Data dengan Cekap ke dalam Jadual Pelayan SQL Berbilang Secara serentak?

Mary-Kate Olsen
Lepaskan: 2025-01-04 05:01:40
asal
389 orang telah melayarinya

How to Efficiently Insert Data into Multiple SQL Server Tables Simultaneously?

Pemasukan Serentak ke dalam Berbilang Jadual Pelayan SQL

Memasukkan data ke dalam berbilang jadual secara serentak boleh menjadi satu cabaran, terutamanya apabila jadual mempunyai hubungan utama asing . Pendekatan biasa ialah menggunakan kaedah INSERT-SELECT-INSERT, yang melibatkan memasukkan data ke dalam jadual pertama, mendapatkan semula kunci utama dan kemudian memasukkan kunci itu ke dalam jadual kedua.

Walau bagaimanapun, kaedah ini boleh menjadi tidak cekap untuk sisipan berskala besar. Untuk senario sedemikian, SQL Server menyediakan penyelesaian alternatif:

insert into [table1] ([data])
output inserted.id, inserted.data into table2
select [data] from [external_table]
Salin selepas log masuk

Pertanyaan ini memasukkan data ke dalam kedua-dua jadual dalam satu transaksi. Klausa OUTPUT mengambil kunci utama dan data yang dimasukkan daripada jadual pertama dan memasukkannya ke dalam jadual kedua.

Contoh:

CREATE TABLE [table1] (
  [id] [int] IDENTITY(1,1) NOT NULL,
  [data1] [varchar](255) NOT NULL,
  CONSTRAINT [PK_table1] PRIMARY KEY CLUSTERED ([id] ASC)
);

CREATE TABLE [table2] (
  [id] [int] IDENTITY(1,1) NOT NULL,
  [table1_id] [int] NOT NULL,
  [data2] [varchar](255) NOT NULL,
  CONSTRAINT [PK_table2] PRIMARY KEY CLUSTERED ([id] ASC)
);

INSERT INTO [table1] ([data1])
OUTPUT INSERTED.ID, INSERTED.DATA1 INTO [table2] ([table1_id], [data2])
SELECT [data1] FROM [external_table];
Salin selepas log masuk

Pertanyaan ini akan memasukkan data daripada jadual luaran ke dalam kedua-dua jadual1 dan jadual2 dalam satu operasi. Data dalam jadual1 akan digunakan untuk mencipta hubungan kunci asing dalam jadual2.

Mengendalikan Lajur Data Berbeza:

Dalam sesetengah senario, lajur data dalam sumber dan jadual destinasi mungkin berbeza. Dalam kes ini, pernyataan MERGE boleh digunakan:

MERGE INTO [table1] AS t
USING [external_table] AS s
ON 1=0 -- modify this predicate as necessary
WHEN NOT MATCHED THEN INSERT (data)
VALUES (s.[col1])
OUTPUT INSERTED.ID, s.[col2] INTO [table2];
Salin selepas log masuk

Pertanyaan ini menjalankan operasi tambah, memasukkan baris ke dalam jadual1 yang belum wujud dan mengemas kini baris sedia ada. Klausa OUTPUT mengambil kunci utama yang dimasukkan dan data yang sepadan daripada jadual luaran dan memasukkannya ke dalam jadual2.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Data dengan Cekap ke dalam Jadual Pelayan SQL Berbilang Secara serentak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan