Hướng dẫn mysql import ignore duplicates - nhập mysql bỏ qua các bản sao

Có một vài cách để làm những gì bạn muốn:

Cách tàn bạo:

TRUNCATE TABLE yourTbl; -- emtpies out the table

Sau đó nhập, nhưng bạn có thể mất dữ liệu, vì vậy có lẽ tạo một bảng sao lưu. Tất cả những điều được xem xét, chỉ cần không làm điều này, hãy kiểm tra các lựa chọn thay thế được liệt kê dưới đây:

Viết truy vấn

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
9 của riêng bạn, với mệnh đề
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
0:

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate

Nhưng, vì bạn đang nhập một tệp, nên truy vấn, rất có thể là một

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
1. Như bạn có thể thấy trong hướng dẫn, bạn cũng có thể dễ dàng thêm
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
0 vào truy vấn đó:

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);

Đó là nó. Đừng lo lắng nếu bạn không quá thoải mái khi viết các truy vấn của riêng mình như thế này, có những cách khác để làm những gì bạn muốn làm: CLI Way:
The CLI way:

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport

Ngoài ra CLI, tạo một tệp chứa truy vấn

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 ở trên, sau đó:

$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql

Điều này yêu cầu bạn có quyền truy cập vào dòng lệnh và chạy lệnh này đây là trang thủ công của MySQL

Sử dụng phpmyadmin, khi nhập, bạn sẽ tìm thấy một hộp kiểm nói rằng "bỏ qua các bản sao", kiểm tra và nhập. Dưới đây là một trang có ảnh chụp màn hình bạn cũng có thể chọn kiểm tra "bỏ qua lỗi", nhưng đó là một cách tiếp cận vũ phu khác và tôi sẽ không đề xuất điều đó.
You could also choose to check "Ignore errors", but that's another brute-force approach, and I wouldn't recommend that.

13.2.7 & nbsp; tải dữ liệu tải

LOAD DATA
    [LOW_PRIORITY | CONCURRENT] [LOCAL]
    INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]
    [SET col_name={expr | DEFAULT}
        [, col_name={expr | DEFAULT}] ...]

Câu lệnh

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 đọc các hàng từ tệp văn bản vào một bảng ở tốc độ rất cao. Tệp có thể được đọc từ máy chủ máy chủ hoặc máy chủ khách, tùy thuộc vào việc sửa đổi
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
5 được đưa ra.
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
5 cũng ảnh hưởng đến việc giải thích dữ liệu và xử lý lỗi.

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 là bổ sung của
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
8. . Để đọc lại tệp vào bảng, hãy sử dụng
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3. Cú pháp của các mệnh đề
$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql
1 và
$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql
2 là giống nhau cho cả hai câu lệnh.

Tiện ích MySQLImport cung cấp một cách khác để tải các tệp dữ liệu; Nó hoạt động bằng cách gửi câu lệnh

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 đến máy chủ. Xem Phần & NBSP; 4.5.5, MySQLImport - một chương trình nhập dữ liệu.mysqlimport utility provides another way to load data files; it operates by sending a
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 statement to the server. See Section 4.5.5, “mysqlimport — A Data Import Program”.

Để biết thông tin về hiệu quả của

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
9 so với
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 và tăng tốc
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3, xem Phần & NBSP; 8.2.5.1, Tối ưu hóa các câu lệnh chèn.

  • Hoạt động phi địa phương so với địa phương

  • Bộ ký tự tệp đầu vào

  • Vị trí tệp đầu vào

  • Yêu cầu bảo mật

  • Khóa trùng lặp và xử lý lỗi

  • Xử lý chỉ mục

  • Xử lý trường và dòng

  • Đặc tả danh sách cột

  • Tiền xử lý đầu vào

  • Gán giá trị cột

  • Hỗ trợ bảng phân vùng

  • Cân nhắc đồng thời

  • Thông tin kết quả tuyên bố

  • Cân nhắc nhân rộng

  • Chủ đề linh tinh

Bộ ký tự tệp đầu vào

Vị trí tệp đầu vào

Yêu cầu bảo mậtno conversion.

Khóa trùng lặp và xử lý lỗi

Xử lý chỉ mụcmysqldump -T or by issuing a

LOAD DATA
    [LOW_PRIORITY | CONCURRENT] [LOCAL]
    INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]
    [SET col_name={expr | DEFAULT}
        [, col_name={expr | DEFAULT}] ...]
4 statement in mysql, be sure to use a
LOAD DATA
    [LOW_PRIORITY | CONCURRENT] [LOCAL]
    INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]
    [SET col_name={expr | DEFAULT}
        [, col_name={expr | DEFAULT}] ...]
5 option to write output in the character set to be used when the file is loaded with
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3.

Xử lý trường và dòng

Đặc tả danh sách cột

Vị trí tệp đầu vào

Yêu cầu bảo mật

  • Khóa trùng lặp và xử lý lỗi

    • Nếu tên tệp là tên đường dẫn tuyệt đối, máy chủ sử dụng nó như đã cho.

    • Nếu tên tệp là tên đường dẫn tương đối với các thành phần hàng đầu, máy chủ sẽ tìm tệp so với thư mục dữ liệu của nó.

    • Nếu tên tệp không có thành phần hàng đầu, máy chủ sẽ tìm tệp trong thư mục cơ sở dữ liệu của cơ sở dữ liệu mặc định.

  • Nếu

    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    5 được chỉ định, tệp phải được đặt trên máy chủ khách. Chương trình máy khách đọc tệp, định vị nó như sau:

    • Nếu tên tệp là tên đường dẫn tuyệt đối, chương trình máy khách sử dụng nó như đã đưa ra.

    • Nếu tên tệp là tên đường dẫn tương đối, chương trình máy khách sẽ tìm tệp liên quan đến thư mục gọi của nó.

    Khi

    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    5 được sử dụng, chương trình máy khách sẽ đọc tệp và gửi nội dung của nó đến máy chủ. Máy chủ tạo một bản sao của tệp trong thư mục nơi lưu trữ các tệp tạm thời. Xem Phần & NBSP; B.3.3.5, Nơi MySQL lưu trữ các tệp tạm thời. Thiếu đủ không gian cho bản sao trong thư mục này có thể khiến tuyên bố
    LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
    5 bị lỗi.

Các quy tắc không phải là không có nghĩa là máy chủ đọc một tệp có tên là

LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
7 liên quan đến thư mục dữ liệu của nó, trong khi nó đọc một tệp có tên là
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
8 từ thư mục cơ sở dữ liệu của cơ sở dữ liệu mặc định. Ví dụ: nếu câu lệnh
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 sau đây được thực thi trong khi
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
0 là cơ sở dữ liệu mặc định, máy chủ sẽ đọc tệp
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
1 từ thư mục cơ sở dữ liệu cho
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
0, mặc dù câu lệnh sẽ tải rõ tệp vào bảng trong cơ sở dữ liệu
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
3:

LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;

Ghi chú

Máy chủ cũng sử dụng các quy tắc không phải -________ 35 để xác định các tệp

FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
5 cho câu lệnh
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
6.

Yêu cầu bảo mật

Đối với hoạt động không tải không, máy chủ đọc một tệp văn bản nằm trên máy chủ máy chủ, do đó các yêu cầu bảo mật này phải được thỏa mãn:

  • Bạn phải có đặc quyền

    FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
    LINES TERMINATED BY '\n' STARTING BY ''
    8. Xem Phần & NBSP; 6.2.2, Đặc quyền của người Hồi giáo được cung cấp bởi MySQL.

  • Hoạt động phải tuân theo cài đặt biến hệ thống

    FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
    LINES TERMINATED BY '\n' STARTING BY ''
    9:

    • Nếu giá trị biến là tên thư mục không trống, tệp phải được đặt trong thư mục đó.

    • Nếu giá trị biến trống (không an toàn), tệp chỉ cần có thể đọc được bởi máy chủ.

Đối với hoạt động tải

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
5, chương trình máy khách sẽ đọc một tệp văn bản nằm trên máy chủ khách. Bởi vì nội dung tệp được gửi qua kết nối bởi máy khách đến máy chủ, sử dụng
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
5 chậm hơn một chút so với khi máy chủ truy cập trực tiếp vào tệp. Mặt khác, bạn không cần đặc quyền
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
8 và tệp có thể được đặt trong bất kỳ thư mục nào mà chương trình máy khách có thể truy cập.

Khóa trùng lặp và xử lý lỗi

Bộ điều chỉnh

LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
  FIELDS TERMINATED BY ','  LINES STARTING BY 'xxx';
3 và
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
0 Điều khiển xử lý các hàng mới (đầu vào) sao chép các hàng bảng hiện có trên các giá trị khóa duy nhất (
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
  FIELDS TERMINATED BY ','  LINES STARTING BY 'xxx';
5 hoặc
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
  FIELDS TERMINATED BY ','  LINES STARTING BY 'xxx';
6 Các giá trị chỉ mục):

  • Với

    LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
      FIELDS TERMINATED BY ','  LINES STARTING BY 'xxx';
    3, các hàng mới có cùng giá trị như giá trị khóa duy nhất trong một hàng hiện tại thay thế hàng hiện có. Xem Phần & NBSP; 13.2.9, Tuyên bố thay thế.

  • Với

    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    0, các hàng mới sao chép một hàng hiện có trên một giá trị khóa duy nhất bị loại bỏ. Để biết thêm thông tin, hãy xem ảnh hưởng của việc bỏ qua đối với việc thực thi tuyên bố.

Công cụ sửa đổi

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
5 có tác dụng tương tự như
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
0. Điều này xảy ra vì máy chủ không có cách nào để dừng truyền tệp ở giữa hoạt động.

Nếu không có

LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
  FIELDS TERMINATED BY ','  LINES STARTING BY 'xxx';
3,
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
0 hoặc
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
5 được chỉ định, xảy ra lỗi khi tìm thấy giá trị khóa trùng lặp và phần còn lại của tệp văn bản bị bỏ qua.

Ngoài việc ảnh hưởng đến việc xử lý khóa trùng lặp như vừa mô tả,

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
0 và
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
5 còn ảnh hưởng đến việc xử lý lỗi:

  • Không có

    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    0 và
    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    5, các lỗi giải thích dữ liệu chấm dứt hoạt động.

  • Với

    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    0 hoặc
    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    5, các lỗi giải thích dữ liệu trở thành cảnh báo và hoạt động tải tiếp tục, ngay cả khi chế độ SQL bị hạn chế. Để biết ví dụ, xem gán giá trị cột.

Xử lý trường và dòng

Đối với cả các câu lệnh

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 và
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
01, cú pháp của các mệnh đề
$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql
1 và
$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql
2 là như nhau. Cả hai mệnh đề đều là tùy chọn, nhưng
$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql
1 phải đi trước
$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql
2 nếu cả hai được chỉ định.

Nếu bạn chỉ định một mệnh đề

$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql
1, mỗi phân nhóm của nó (
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
07,
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
08 và
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
09) cũng là tùy chọn, ngoại trừ việc bạn phải chỉ định ít nhất một trong số chúng. Các đối số cho các mệnh đề này được phép chỉ chứa các ký tự ASCII.

Nếu bạn chỉ định điều khoản không

$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql
1 hoặc
$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql
2, các mặc định giống như khi bạn đã viết điều này:

FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''

Backslash là ký tự thoát MySQL trong các chuỗi trong các câu lệnh SQL. Do đó, để chỉ định một dấu gạch chéo ngược theo nghĩa đen, bạn phải chỉ định hai dấu gạch chéo ngược cho giá trị được hiểu là một dấu gạch chéo ngược. Trình tự thoát

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
12 và
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
13 chỉ định các ký tự Tab và Newline tương ứng.

Nói cách khác, mặc định khiến

LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
1 hoạt động như sau khi đọc đầu vào:

  • Tìm kiếm ranh giới dòng tại Newlines.

  • Không bỏ qua bất kỳ tiền tố dòng.

  • Phá vỡ các dòng thành các trường tại các tab.

  • Không mong đợi các trường sẽ được đặt trong bất kỳ ký tự trích dẫn nào.

  • Giải thích các ký tự trước ký tự Escape

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    15 dưới dạng trình tự thoát. Ví dụ:
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    16,
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    17 và
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    18 có nghĩa là tab, newline và dấu gạch chéo ngược, tương ứng. Xem cuộc thảo luận của
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    19 sau để biết danh sách đầy đủ các chuỗi thoát.

Ngược lại, các mặc định khiến

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
01 hoạt động như sau khi viết đầu ra:

  • Viết tab giữa các trường.

  • Không gửi các trường trong bất kỳ ký tự trích dẫn nào.

  • Sử dụng

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    15 để thoát khỏi các trường hợp của Tab, Newline hoặc
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    15 xảy ra trong các giá trị trường.

  • Viết Newlines ở cuối dòng.

Ghi chú

Đối với một tệp văn bản được tạo trên hệ thống Windows, việc đọc tệp thích hợp có thể yêu cầu

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
23 vì các chương trình Windows thường sử dụng hai ký tự làm bộ kết thúc dòng. Một số chương trình, chẳng hạn như WordPad, có thể sử dụng
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
24 làm người kết thúc dòng khi viết tệp. Để đọc các tệp như vậy, hãy sử dụng
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
25.WordPad, might use
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
24 as a line terminator when writing files. To read such files, use
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
25.

Nếu tất cả các dòng đầu vào có một tiền tố chung mà bạn muốn bỏ qua, bạn có thể sử dụng

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
26 'để bỏ qua tiền tố và bất cứ điều gì trước đó. Nếu một dòng không bao gồm tiền tố, toàn bộ dòng bị bỏ qua. Giả sử rằng bạn đưa ra tuyên bố sau:and anything before it. If a line does not include the prefix, the entire line is skipped. Suppose that you issue the following statement:

LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
  FIELDS TERMINATED BY ','  LINES STARTING BY 'xxx';

Nếu tệp dữ liệu trông như thế này:

xxx"abc",1
something xxx"def",2
"ghi",3

Các hàng kết quả là

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
27 và
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
28. Hàng thứ ba trong tệp bị bỏ qua vì nó không chứa tiền tố.

Mệnh đề dòng

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
29 có thể được sử dụng để bỏ qua các dòng khi bắt đầu tệp. Ví dụ: bạn có thể sử dụng
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
30 để bỏ qua một dòng tiêu đề ban đầu chứa tên cột:

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
0

Khi bạn sử dụng

LOAD DATA
    [LOW_PRIORITY | CONCURRENT] [LOCAL]
    INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]
    [SET col_name={expr | DEFAULT}
        [, col_name={expr | DEFAULT}] ...]
4 song song với
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 để ghi dữ liệu từ cơ sở dữ liệu vào một tệp và sau đó đọc lại tệp vào cơ sở dữ liệu sau đó, các tùy chọn xử lý trường và dòng cho cả hai câu lệnh phải khớp. Mặt khác,
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
1 không diễn giải nội dung của tệp đúng cách. Giả sử rằng bạn sử dụng
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
01 để viết một tệp với các trường được phân tách bằng dấu phẩy:

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
1

Để đọc tệp phân loại dấu phẩy, câu lệnh chính xác là:

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
2

Nếu thay vào đó, bạn đã cố gắng đọc tệp với câu lệnh được hiển thị sau, nó sẽ không hoạt động vì nó hướng dẫn

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 để tìm các tab giữa các trường:

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
3

Kết quả có thể là mỗi dòng đầu vào sẽ được hiểu là một trường duy nhất.

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 có thể được sử dụng để đọc các tệp thu được từ các nguồn bên ngoài. Ví dụ, nhiều chương trình có thể xuất dữ liệu theo định dạng giá trị phân tách dấu phẩy (CSV), sao cho các dòng có các trường được phân tách bằng dấu phẩy và được đặt trong các dấu ngoặc kép, với một dòng tên cột ban đầu. Nếu các dòng trong một tệp như vậy bị chấm dứt bởi các cặp return/newline vận chuyển, thì câu lệnh được hiển thị ở đây minh họa các tùy chọn xử lý trường và dòng bạn sẽ sử dụng để tải tệp:

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
4

Nếu các giá trị đầu vào không nhất thiết được đặt trong các dấu ngoặc kép, hãy sử dụng

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
37 trước tùy chọn
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
38.

Bất kỳ tùy chọn xử lý trường hoặc dòng nào cũng có thể chỉ định một chuỗi trống (

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
39). Nếu không trống, các giá trị
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
40 và
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
41 phải là một ký tự duy nhất. Các giá trị
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
42,
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
43 và
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
44 có thể nhiều hơn một ký tự. Ví dụ: để ghi các dòng bị chấm dứt bởi các cặp trả về vận chuyển/linefeed hoặc để đọc một tệp chứa các dòng đó, chỉ định mệnh đề
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
45.

Để đọc một tệp chứa những trò đùa được phân tách bằng các dòng bao gồm

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
46, bạn có thể làm điều này

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
5

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
40 Kiểm soát trích dẫn các trường. Đối với đầu ra (
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
01), nếu bạn bỏ qua từ
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
37, tất cả các trường được đặt bởi ký tự
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
38. Một ví dụ về đầu ra đó (sử dụng dấu phẩy làm dấu phân cách trường) được hiển thị ở đây:

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
6

Nếu bạn chỉ định

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
37, ký tự
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
38 chỉ được sử dụng để đặt các giá trị từ các cột có kiểu dữ liệu chuỗi (chẳng hạn như
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
53,
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
54,
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
55 hoặc
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
56):

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
7

Sự xuất hiện của ký tự

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
38 trong một giá trị trường được thoát ra bằng tiền tố chúng với ký tự
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
09. Ngoài ra, nếu bạn chỉ định giá trị
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
09 trống, có thể vô tình tạo ra đầu ra không thể đọc đúng bởi
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3. Ví dụ, đầu ra trước chỉ hiển thị sẽ xuất hiện như sau nếu ký tự thoát trống. Quan sát rằng trường thứ hai trong dòng thứ tư chứa dấu phẩy theo trích dẫn, (sai lầm) dường như chấm dứt trường:

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
8

Đối với đầu vào, ký tự

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
38, nếu có, bị tước khỏi các đầu của các giá trị trường. .

Nếu trường bắt đầu với ký tự

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
38, các phiên bản của ký tự đó được công nhận là kết thúc giá trị trường chỉ khi theo sau là chuỗi trường hoặc dòng
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
07. Để tránh sự mơ hồ, sự xuất hiện của ký tự
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
38 trong một giá trị trường có thể được nhân đôi và được hiểu là một trường hợp duy nhất của ký tự. Ví dụ: nếu
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
69 được chỉ định, dấu ngoặc kép được xử lý như thể hiện ở đây:

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
9

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
41 Kiểm soát cách đọc hoặc viết các ký tự đặc biệt:

  • Đối với đầu vào, nếu ký tự

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    41 không trống, sự xuất hiện của ký tự đó bị tước và ký tự sau được lấy theo nghĩa đen như là một phần của giá trị trường. Một số trình tự hai ký tự là ngoại lệ, trong đó nhân vật đầu tiên là ký tự thoát. Các chuỗi này được hiển thị trong bảng sau (sử dụng
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    15 cho ký tự thoát). Các quy tắc để xử lý
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73 được mô tả sau trong phần này.

    Tính cáchTrình tự thoát
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    74
    Một nhân vật ASCII NUL (
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    75)
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    76
    Một ký tự backspace
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    17
    Một ký tự dòng mới (linefeed)
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    24
    Một nhân vật trở lại vận chuyển
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    16
    Một ký tự tab.
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    80
    ASCII 26 (Control+Z)
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    81
    VÔ GIÁ TRỊ

    Để biết thêm thông tin về cú pháp ____ 115-escape, xem phần & nbsp; 9.1.1, Chuỗi chuỗi chữ.

    Nếu ký tự

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    41 trống, việc giải thích chuỗi thoát không xảy ra.

  • Đối với đầu ra, nếu ký tự

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    41 không trống, nó được sử dụng để tiền tố các ký tự sau trên đầu ra:

    • Nhân vật

      INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
      
      41.

    • Nhân vật

      INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
      
      40.

    • Ký tự đầu tiên của các giá trị

      INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
      
      87 và
      INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
      
      88, nếu ký tự
      INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
      
      38 trống hoặc không xác định.

    • ASCII

      INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
      
      90 (những gì thực sự được viết theo ký tự thoát là ASCII
      INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
      
      90, không phải là một Byte có giá trị bằng không).

    Nếu ký tự

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    41 trống, không có ký tự nào được thoát và
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73 là đầu ra là
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73, không phải
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    81. Có lẽ không phải là một ý tưởng tốt để chỉ định một ký tự thoát trống, đặc biệt nếu các giá trị trường trong dữ liệu của bạn chứa bất kỳ ký tự nào trong danh sách vừa được đưa ra.

Trong một số trường hợp nhất định, các tùy chọn xử lý trường và dòng tương tác:

  • Nếu

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    88 là một chuỗi trống và
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    42 là không trống, các dòng cũng bị chấm dứt với
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    98.

  • Nếu các giá trị

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    42 và
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    00 đều trống (
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    39), định dạng hàng cố định (không giới hạn) được sử dụng. Với định dạng hàng cố định, không có trình phân cách nào được sử dụng giữa các trường (nhưng bạn vẫn có thể có một thiết bị kết thúc dòng). Thay vào đó, các giá trị cột được đọc và viết bằng một chiều rộng trường đủ rộng để giữ tất cả các giá trị trong trường. Đối với
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    02,
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    03,
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    04,
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    05 và
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    06, chiều rộng trường lần lượt là 4, 6, 8, 11 và 20, bất kể chiều rộng hiển thị được khai báo là bao nhiêu.

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    88 vẫn được sử dụng để tách các dòng. Nếu một dòng không chứa tất cả các trường, phần còn lại của các cột được đặt thành các giá trị mặc định của chúng. Nếu bạn không có bộ kết thúc dòng, bạn nên đặt nó thành
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    39. Trong trường hợp này, tệp văn bản phải chứa tất cả các trường cho mỗi hàng.

    Định dạng hàng cố định cũng ảnh hưởng đến việc xử lý các giá trị

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73, như được mô tả sau.

    Ghi chú

    Định dạng kích thước cố định không hoạt động nếu bạn đang sử dụng một bộ ký tự Multibyte.

Xử lý các giá trị

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
73 khác nhau tùy theo các tùy chọn
$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql
1 và
$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql
2 đang sử dụng:

  • Đối với các giá trị

    $: mysql -u root -p
    *********** #enter password
    mysql> source /path/to/queryFile.sql
    
    1 và
    $: mysql -u root -p
    *********** #enter password
    mysql> source /path/to/queryFile.sql
    
    2 mặc định,
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73 được viết dưới dạng giá trị trường là
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    81 cho đầu ra và giá trị trường của
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    81 được đọc là
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73 cho đầu vào (giả sử rằng ký tự
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    09 là
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    15).

  • Nếu

    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    00 không trống, một trường chứa từ theo nghĩa đen
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73 vì giá trị của nó được đọc là giá trị
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73. Điều này khác với từ
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73 được đặt trong các ký tự
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    00, được đọc dưới dạng chuỗi
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    26.

  • Nếu

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    41 trống,
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73 được viết là từ
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73.

  • Với định dạng hàng cố định (được sử dụng khi

    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    30 và
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    31 đều trống),
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73 được viết dưới dạng một chuỗi trống. Điều này khiến cả giá trị
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73 và chuỗi trống trong bảng phải không thể phân biệt khi được ghi vào tệp vì cả hai đều được viết dưới dạng chuỗi trống. Nếu bạn cần có khả năng phân biệt hai người khi đọc lại tệp, bạn không nên sử dụng định dạng hàng cố định.

Một nỗ lực để tải

INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
73 vào cột
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
35 tạo ra cảnh báo hoặc lỗi theo các quy tắc được mô tả trong gán giá trị cột.

Một số trường hợp không được hỗ trợ bởi

LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
1:

  • Các hàng có kích thước cố định (

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    42 và
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    00 cả trống) và các cột
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    39 hoặc
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    55.

  • Nếu bạn chỉ định một phân tách giống như hoặc tiền tố của một phân tách khác,

    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    3 không thể giải thích đầu vào đúng cách. Ví dụ, mệnh đề
    $: mysql -u root -p
    *********** #enter password
    mysql> source /path/to/queryFile.sql
    
    1 sau đây sẽ gây ra vấn đề:

    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    0
  • Nếu

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    41 trống, giá trị trường chứa sự xuất hiện của
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    44 hoặc
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    45, sau đó là giá trị
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    98 khiến
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    47 ngừng đọc trường hoặc dòng quá sớm. Điều này xảy ra bởi vì
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    47 không thể xác định đúng nơi giá trị trường hoặc dòng kết thúc.

Đặc tả danh sách cột

Ví dụ sau tải tất cả các cột của bảng

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
49:

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
1

Theo mặc định, khi không có danh sách cột nào được cung cấp ở cuối câu lệnh

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3, các dòng đầu vào dự kiến ​​sẽ chứa một trường cho mỗi cột bảng. Nếu bạn chỉ muốn tải một số cột của bảng, hãy chỉ định danh sách cột:

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
2

Bạn cũng phải chỉ định danh sách cột nếu thứ tự của các trường trong tệp đầu vào khác với thứ tự của các cột trong bảng. Mặt khác, MySQL không thể cho biết cách khớp các trường đầu vào với các cột bảng.

Tiền xử lý đầu vào

Mỗi phiên bản của

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
51 trong cú pháp
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 là tên cột hoặc biến người dùng. Với các biến người dùng, mệnh đề
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
53 cho phép bạn thực hiện các biến đổi tiền xử lý trên các giá trị của chúng trước khi gán kết quả cho các cột.

Các biến người dùng trong mệnh đề

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
53 có thể được sử dụng theo nhiều cách. Ví dụ sau sử dụng cột đầu vào đầu tiên trực tiếp cho giá trị của
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
55 và gán cột đầu vào thứ hai cho biến người dùng chịu hoạt động phân chia trước khi được sử dụng cho giá trị
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
56:

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
3

Điều khoản

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
53 có thể được sử dụng để cung cấp các giá trị không có nguồn gốc từ tệp đầu vào. Câu lệnh sau đây đặt
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
58 cho ngày và giờ hiện tại:

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
4

Bạn cũng có thể loại bỏ giá trị đầu vào bằng cách gán nó cho biến người dùng và không gán biến cho bất kỳ cột bảng nào:

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
5

Việc sử dụng danh sách cột/biến và mệnh đề

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
53 phải tuân theo các hạn chế sau:

  • Các bài tập trong mệnh đề

    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    53 chỉ có tên cột ở phía bên trái của toán tử gán.

  • Bạn có thể sử dụng các nhóm con ở phía bên tay phải của các bài tập

    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    53. Một truy vấn con trả về một giá trị được gán cho một cột chỉ có thể là một truy vấn con vô hướng. Ngoài ra, bạn không thể sử dụng một truy vấn con để chọn từ bảng đang được tải.

  • Các dòng bị bỏ qua bởi một mệnh đề dòng

    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    62 không được xử lý cho danh sách cột/biến hoặc mệnh đề
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    53.

  • Không thể sử dụng các biến người dùng khi tải dữ liệu với định dạng hàng cố định vì các biến người dùng không có chiều rộng hiển thị.

Gán giá trị cột

Để xử lý một dòng đầu vào,

LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
1 chia nó thành các trường và sử dụng các giá trị theo danh sách cột/biến và mệnh đề
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
53, nếu chúng có mặt. Sau đó hàng kết quả được chèn vào bảng. Nếu có
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
66 hoặc
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
67 kích hoạt cho bảng, chúng sẽ được kích hoạt trước hoặc sau khi chèn hàng, tương ứng.

Giải thích các giá trị trường và gán cho các cột bảng phụ thuộc vào các yếu tố sau:

  • Chế độ SQL (giá trị của biến hệ thống

    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    68). Chế độ có thể không bị hạn chế hoặc hạn chế theo nhiều cách khác nhau. Ví dụ: chế độ SQL nghiêm ngặt có thể được bật hoặc chế độ có thể bao gồm các giá trị như
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    69 hoặc
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    70.

  • Sự hiện diện hoặc vắng mặt của các sửa đổi

    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    0 và
    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    5.

Những yếu tố đó kết hợp để tạo ra sự giải thích dữ liệu hạn chế hoặc không hạn chế bằng cách

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3:

  • Giải thích dữ liệu bị hạn chế nếu chế độ SQL bị hạn chế và cả công cụ sửa đổi

    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    0 và
    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    5 đều không được chỉ định. Lỗi chấm dứt hoạt động tải.

  • Giải thích dữ liệu là không hạn chế nếu chế độ SQL không bị hạn chế hoặc công cụ sửa đổi

    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    0 hoặc
    mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    5 được chỉ định. .overrides a restrictive SQL mode.) Errors become warnings and the load operation continues.

Giải thích dữ liệu hạn chế sử dụng các quy tắc sau:

  • Quá nhiều hoặc quá ít trường kết quả là một lỗi.

  • Việc gán

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73 (nghĩa là,
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    81) cho một cột không phải là -____ 173 dẫn đến một lỗi.

  • Một giá trị nằm ngoài phạm vi cho kiểu dữ liệu cột dẫn đến một lỗi.

  • Giá trị không hợp lệ tạo ra lỗi. Ví dụ: một giá trị như

    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    81 cho một cột số dẫn đến lỗi, không chuyển đổi thành 0.

Ngược lại, giải thích dữ liệu không hạn chế sử dụng các quy tắc này:

  • Nếu một dòng đầu vào có quá nhiều trường, các trường bổ sung bị bỏ qua và số lượng cảnh báo được tăng lên.

  • Nếu một dòng đầu vào có quá ít trường, các cột mà các trường đầu vào bị thiếu được gán giá trị mặc định của chúng. Gán giá trị mặc định được mô tả trong Phần & NBSP; 11.6, Kiểu dữ liệu Giá trị mặc định.

  • Gán

    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    73 (nghĩa là,
    INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
    
    81) cho một cột không phải là -____ 173 dẫn đến việc gán giá trị mặc định ngầm cho kiểu dữ liệu cột. Các giá trị mặc định ngầm được mô tả trong Phần & NBSP; 11.6, Kiểu dữ liệu Giá trị mặc định.

  • Các giá trị không hợp lệ tạo ra các cảnh báo thay vì lỗi và được chuyển đổi thành giá trị hợp lệ của gần nhất cho loại dữ liệu cột. Ví dụ:closest valid value for the column data type. Examples:

    • Một giá trị như

      LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
          INTO TABLE your_db.your_tbl
              FIELDS TERMINATED BY ';'
                     OPTIONALLY ENCLOSED BY '"'
              LINES TERMINATED BY '\n'
          (`field1`,`field2`);
      
      81 cho một cột số dẫn đến chuyển đổi thành 0.

    • Một giá trị số hoặc thời gian ngoài phạm vi được cắt theo điểm cuối gần nhất của phạm vi cho kiểu dữ liệu cột.

    • Một giá trị không hợp lệ cho cột

      LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
          INTO TABLE your_db.your_tbl
              FIELDS TERMINATED BY ';'
                     OPTIONALLY ENCLOSED BY '"'
              LINES TERMINATED BY '\n'
          (`field1`,`field2`);
      
      86,
      LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
          INTO TABLE your_db.your_tbl
              FIELDS TERMINATED BY ';'
                     OPTIONALLY ENCLOSED BY '"'
              LINES TERMINATED BY '\n'
          (`field1`,`field2`);
      
      87 hoặc
      LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
          INTO TABLE your_db.your_tbl
              FIELDS TERMINATED BY ';'
                     OPTIONALLY ENCLOSED BY '"'
              LINES TERMINATED BY '\n'
          (`field1`,`field2`);
      
      88 được chèn dưới dạng giá trị mặc định ngầm, bất kể cài đặt Chế độ SQL
      LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
          INTO TABLE your_db.your_tbl
              FIELDS TERMINATED BY ';'
                     OPTIONALLY ENCLOSED BY '"'
              LINES TERMINATED BY '\n'
          (`field1`,`field2`);
      
      69. Mặc định ngầm định là giá trị không phù hợp với loại không đối với loại (
      LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
          INTO TABLE your_db.your_tbl
              FIELDS TERMINATED BY ';'
                     OPTIONALLY ENCLOSED BY '"'
              LINES TERMINATED BY '\n'
          (`field1`,`field2`);
      
      90,
      LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
          INTO TABLE your_db.your_tbl
              FIELDS TERMINATED BY ';'
                     OPTIONALLY ENCLOSED BY '"'
              LINES TERMINATED BY '\n'
          (`field1`,`field2`);
      
      91 hoặc
      LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
          INTO TABLE your_db.your_tbl
              FIELDS TERMINATED BY ';'
                     OPTIONALLY ENCLOSED BY '"'
              LINES TERMINATED BY '\n'
          (`field1`,`field2`);
      
      92). Xem Phần & NBSP; 11.2, các loại dữ liệu ngày và thời gian.zero value for the type (
      LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
          INTO TABLE your_db.your_tbl
              FIELDS TERMINATED BY ';'
                     OPTIONALLY ENCLOSED BY '"'
              LINES TERMINATED BY '\n'
          (`field1`,`field2`);
      
      90,
      LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
          INTO TABLE your_db.your_tbl
              FIELDS TERMINATED BY ';'
                     OPTIONALLY ENCLOSED BY '"'
              LINES TERMINATED BY '\n'
          (`field1`,`field2`);
      
      91, or
      LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
          INTO TABLE your_db.your_tbl
              FIELDS TERMINATED BY ';'
                     OPTIONALLY ENCLOSED BY '"'
              LINES TERMINATED BY '\n'
          (`field1`,`field2`);
      
      92). See Section 11.2, “Date and Time Data Types”.

  • mysqlimport -i dbname fileToImport
    # Or
    mysqlimport --ignore dbname fileToImport
    
    3 diễn giải một giá trị trường trống khác với trường bị thiếu:

    • Đối với các loại chuỗi, cột được đặt thành chuỗi trống.

    • Đối với các loại số, cột được đặt thành

      INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
      
      90.

    • Đối với các loại ngày và thời gian, cột được đặt thành giá trị Zero Zero thích hợp cho loại. Xem Phần & NBSP; 11.2, các loại dữ liệu ngày và thời gian.zero value for the type. See Section 11.2, “Date and Time Data Types”.

    Đây là những giá trị giống nhau kết quả nếu bạn gán một chuỗi trống một cách rõ ràng cho một chuỗi, số hoặc ngày hoặc loại thời gian rõ ràng trong câu lệnh

    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    9 hoặc
    LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
        INTO TABLE your_db.your_tbl
            FIELDS TERMINATED BY ';'
                   OPTIONALLY ENCLOSED BY '"'
            LINES TERMINATED BY '\n'
        (`field1`,`field2`);
    
    96.

Các cột

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
97 chỉ được đặt thành ngày và thời gian hiện tại nếu có giá trị
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
73 cho cột (nghĩa là
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
81) và cột không được khai báo để cho phép các giá trị
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
73 hoặc nếu cột mặc định của cột ____297 là thời gian hiện tại và nó được bỏ qua khỏi danh sách trường khi một danh sách trường được chỉ định.

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 coi tất cả các đầu vào là chuỗi, vì vậy bạn không thể sử dụng các giá trị số cho các cột
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
56 hoặc
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
53 theo cách bạn có thể với các câu lệnh
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
9. Tất cả các giá trị
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
56 và
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
53 phải được chỉ định là chuỗi.

Các giá trị

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
08 không thể được tải trực tiếp bằng ký hiệu nhị phân (ví dụ:
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
09). Để làm việc xung quanh điều này, hãy sử dụng mệnh đề
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
53 để loại bỏ
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
11 hàng đầu và theo dõi
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
12 và thực hiện chuyển đổi cơ sở-2 sang cơ sở-10 để MySQL tải các giá trị vào cột
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
08 đúng cách:

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
6

Đối với các giá trị

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
08 trong ký hiệu nhị phân
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
15 (ví dụ:
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
16), hãy sử dụng điều khoản
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
53 này để loại bỏ
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
15 hàng đầu:

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
7

Hỗ trợ bảng phân vùng

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 Hỗ trợ lựa chọn phân vùng rõ ràng bằng mệnh đề
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
20 với danh sách một hoặc nhiều tên phân tách dấu phẩy của các phân vùng, phân vùng hoặc cả hai. Khi mệnh đề này được sử dụng, nếu bất kỳ hàng nào từ tệp không thể được chèn vào bất kỳ phân vùng hoặc phân vùng nào có tên trong danh sách, câu lệnh không thành công với lỗi tìm thấy một hàng không khớp với bộ phân vùng đã cho. Để biết thêm thông tin và ví dụ, xem Phần & NBSP; 24.5, Lựa chọn phân vùng.Found a row not matching the given partition set. For more information and examples, see Section 24.5, “Partition Selection”.

Cân nhắc đồng thời

Với công cụ sửa đổi

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
21, việc thực thi câu lệnh
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 bị trì hoãn cho đến khi không có máy khách nào khác đọc từ bảng. Điều này chỉ ảnh hưởng đến các công cụ lưu trữ chỉ sử dụng khóa cấp bảng (chẳng hạn như
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
23,
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
24 và
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
25).

Với công cụ sửa đổi

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
26 và bảng
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
23 thỏa mãn điều kiện để chèn đồng thời (nghĩa là, nó không chứa các khối miễn phí ở giữa), các luồng khác có thể lấy dữ liệu từ bảng trong khi
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 đang thực thi. Trình sửa đổi này ảnh hưởng đến hiệu suất của
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
1 một chút, ngay cả khi không có luồng nào khác sử dụng bảng cùng một lúc.

Cân nhắc nhân rộng

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 được coi là không an toàn cho sao chép dựa trên tuyên bố. Nếu bạn sử dụng
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 với
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
32, mỗi bản sao mà các thay đổi sẽ được áp dụng sẽ tạo ra một tệp tạm thời chứa dữ liệu. Tệp tạm thời này không được mã hóa, ngay cả khi mã hóa nhật ký nhị phân hoạt động trên nguồn, nếu cần mã hóa, hãy sử dụng định dạng ghi nhị phân dựa trên hàng hoặc hỗn hợp thay thế, thay vào đó, các bản sao không tạo tệp tạm thời. Để biết thêm thông tin về sự tương tác giữa
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 và sao chép, xem Phần & NBSP; 17.5.1.19, Dữ liệu sao chép và tải dữ liệu.

Chủ đề linh tinh

Trên Unix, nếu bạn cần

mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
3 để đọc từ đường ống, bạn có thể sử dụng kỹ thuật sau (ví dụ tải một danh sách thư mục
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
35 vào bảng
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
36):

LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
    INTO TABLE your_db.your_tbl
        FIELDS TERMINATED BY ';'
               OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    (`field1`,`field2`);
8

Tại đây, bạn phải chạy lệnh tạo dữ liệu sẽ được tải và các lệnh MySQL trên các thiết bị đầu cuối riêng biệt hoặc chạy quy trình tạo dữ liệu trong nền (như trong ví dụ trước).Nếu bạn không làm điều này, đường ống sẽ chặn cho đến khi dữ liệu được đọc bởi quy trình MySQL.mysql commands either on separate terminals, or run the data generation process in the background (as shown in the preceding example). If you do not do this, the pipe blocks until data is read by the mysql process.