Có rất nhiều cơ sở dữ liệu khác nhau trên thế giới và nhiều người trong số họ sử dụng ngôn ngữ SQL để lập trình. Rất dễ dàng cho rằng nếu họ đang sử dụng SQL, chúng ta có thể dễ dàng sử dụng mã từ cơ sở dữ liệu này sang cơ sở dữ liệu khác. Thật không may là thực tế rất khác, không phải tất cả các script từ một cơ sở dữ liệu này đều hoạt động trong một cơ sở dữ liệu khác. Hôm nay chúng ta sẽ thấy một câu hỏi rất thú vị trong đó người dùng đặt câu hỏi về cách chèn nhiều hàng trong một truy vấn SQL.
Câu hỏi: Viết mã SQL sẽ chèn nhiều hàng trong một truy vấn SQL. Điều kiện cho tập lệnh này là nó phải hoạt động trong SQL Server, MySQL và PostgreSQL mà không thay đổi một mã dòng nào.
Trả lời: Viết mã để chèn nhiều hàng trong một truy vấn SQL không phải là một nhiệm vụ khó khăn, nhưng thực sự là một thách thức để tạo một tập lệnh hoạt động với nhiều cơ sở dữ liệu. Tuy nhiên, có thể tạo một tập lệnh hoạt động trên nhiều cơ sở dữ liệu.
Trước tiên, chúng ta hãy tạo một bảng mẫu với hai cột trong đó. Khi bảng được tạo, hãy chèn ba hàng khác nhau trong một truy vấn SQL.
CREATE TABLE SampleTable (ID INT, Col1 VARCHAR(100)); INSERT INTO SampleTable (ID, Col1) VALUES (1, 'One'), (2, 'Two'), (3, 'Three'); SELECT * FROM SampleTable; DROP TABLE SampleTable;
Bây giờ chúng ta hãy chạy truy vấn này trong nhiều cơ sở dữ liệu và xem kết quả.
Máy chủ SQL
MySQL
PostgreSQL
Thế là xong. Đây thực sự là một câu hỏi rất thú vị. Để bạn biết cách khác, bạn cũng có thể xây dựng Tập lệnh SQL với sự trợ giúp của UNION. Tuy nhiên, giải pháp được trình bày trong truy vấn này là một cách mới.