gì tôi muốn là để chèn dữ liệu trong bảng mysql nhưng tôi không thể tìm ra cách để làm cho mối quan hệ từ một hànglàm thế nào để chèn tab tập tin được phân định vào mysql với mối quan hệ
giả sử tôi có một tập tin file.tab nó chứa dữ liệu trong như
parent_1 parent_details_1 child_1.1 child_details_1.1 child_1.2 child_details_1.2
parent_2 parent_details_2 child_2.1 child_details_2.1
parent_3 parent_details_3 child_3.1 child_details_3.1 child_3.2 child_details_3.2 child_3.3 child_details_3.3
những gì tôi muốn đạt được là để chèn dữ liệu trong hai bảng như
parent_table
+---+-----------+-------------------+
|id | name | details |
+---+-----------+-------------------+
| 1 | parent_1 | parent_details_1 |
| 2 | parent_2 | parent_details_2 |
| 3 | parent_3 | parent_details_3 |
+---+-----------+-------------------+
child_table
+---+-----+-----------+-------------------+
|id | pid | name | details |
+---+-----+-----------+-------------------+
| 1 | 1 | child_1.1 | child_details_1.1 |
| 2 | 1 | child_1.2 | child_details_1.2 |
| 3 | 2 | child_2.1 | child_details_2.1 |
| 4 | 3 | child_3.1 | child_details_3.1 |
| 5 | 3 | child_3.2 | child_details_3.2 |
| 6 | 3 | child_3.3 | child_details_3.3 |
+---+-----+-----------+-------------------+
hai cột đầu tiên là dành cho cha mẹ và sau đó hai cột hai thuộc về con nhưng tôi không biết có bao nhiêu con của bố mẹ.
tôi đã cố gắng tải tệp theo cách đó.
LOAD DATA INFILE '/tmp/file.tab INTO TABLE ...
nhưng tôi làm gì tiếp theo mà tôi không biết.
vì vậy vui lòng giúp tôi trong câu hỏi này.
Như @RickJames nói trong câu cuối cùng, đó là một cách toàn SQL đó là hơi ít lộn xộn. Tôi nghĩ rằng bạn nên làm một số loại bình thường hóa bên ngoài của SQL mà sẽ được khá dễ dàng. Bạn có thể sử dụng một tìm kiếm đơn giản, nơi một dòng mới được thêm vào sau mỗi 2 TABS. Sau đó, bạn có thể grep cho 'parent' hoặc' child' (giả sử bạn có một số cách để định danh ID 2) để bạn biết có nên 'INSERT' vào bảng' parent' hoặc 'child' hay không. IMHO, nó dường như không có giá trị làm tất cả trong 1 ngôn ngữ, especiall nếu tập tin là như thường xuyên như bạn hiển thị (mỗi 2 TABS là một mục mới). –