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

cách chèn tệp được phân cách bằng tab vào mysql với quan hệ

Tạo bảng (Staging ) với rất nhiều cột. Để trống (NULL ) cột cho parent_id và id cho trẻ em.

Hy vọng rằng các dòng 'ngắn' sẽ đặt giá trị rỗng trong các cột con bị thiếu trong LOAD DATA .

INSERT .. SELECT .. để lấy parentparent_detail vào Parents bàn. Kéo lại ids từ Parents vào Staging.parent_id . Chi tiết về hai SQL cho những điều này có trong http://mysql.rjweb.org /doc.php/staging_table#normalization

Bây giờ, hãy làm điều gì đó tương tự cho từng tập hợp cột "con" có thể có:child1child1_detail (có thể là cặp NULL) và NULL child1_id hiện tại . Ditto cho child2 *, v.v. Lưu ý rằng khi điền Children bảng, bạn đã có parent_id có sẵn.

Đây là cách thực hiện nhiệm vụ trên toàn SQL. Nó chỉ hơi lộn xộn hơn một chút so với viết Perl / PHP / Java / VB / bất kỳ mã nào để thực hiện tác vụ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORDER BY NULL trong MySQL

  2. Lựa chọn động các tùy chọn php và mysql

  3. Cách thực hiện tham gia toàn bộ bên ngoài trong MySQL

  4. Đếm số lần xuất hiện của từ trong một cột bảng

  5. mysql_real_escape_string không đủ tốt?