Ok, tôi đang sử dụng Linux nhưng tôi nghĩ điều này cũng đúng với Windows. Bạn có thể làm điều này trực tiếp từ dấu nhắc lệnh
> mysql -u <user name> -p<password> <database name> < sqlfilename.sql
Hoặc từ trong dấu nhắc mysql, bạn có thể sử dụng:
mysql>source sqlfilename.sql
Nhưng cả hai phương pháp này đều có lợi ích riêng trong kết quả mà họ hiển thị. Trong cách tiếp cận đầu tiên, tập lệnh thoát ngay khi gặp lỗi. Và phần tốt hơn, là nó cho bạn biết số dòng chính xác trong tệp nguồn nơi xảy ra lỗi. Tuy nhiên, nó chỉ hiển thị lỗi. Nếu nó không gặp phải bất kỳ lỗi nào, các tập lệnh sẽ hiển thị KHÔNG CÓ. Mà có thể là một chút đáng sợ. Bởi vì bạn thường xuyên chạy một tập lệnh với cả đống lệnh.
Bây giờ cách tiếp cận thứ hai (từ trong dấu nhắc mysql) có lợi ích là nó hiển thị một thông báo cho mỗi lệnh MySQL khác nhau trong tập lệnh. Nếu nó gặp lỗi, nó sẽ hiển thị thông báo lỗi mysql nhưng vẫn tiếp tục thông qua các tập lệnh. Điều này có thể tốt, bởi vì sau đó bạn có thể quay lại và sửa tất cả các lỗi trước khi bạn chạy lại tập lệnh. Nhược điểm là nó KHÔNG hiển thị số dòng trong tập lệnh nơi gặp lỗi. Điều này có thể là một chút đau đớn. Nhưng các thông báo lỗi là mô tả để bạn có thể tìm ra vấn đề ở đâu.
Tôi, đối với một, thích cách tiếp cận dòng lệnh trực tiếp từ hệ điều hành.