Chúng ta sẽ hiểu thêm về cách sử dụng mệnh đề “nếu không tồn tại” để tạo bảng trong bài viết này với sự trợ giúp của các ví dụ khác nhau Show Cách chúng ta có thể tạo bảng bằng kỹ thuật “nếu không tồn tại”Đầu tiên chúng ta sẽ mở MySQL trong terminal $ sudo mysql Hiển thị cơ sở dữ liệu chúng tôi có HIỂN THỊ CƠ SỞ DỮ LIỆU; Một danh sách tất cả các cơ sở dữ liệu sẽ được hiển thị, chúng tôi sẽ sử dụng shopping_mart_data SỬ DỤNG shopping_mart_data; Để liệt kê các bảng của cơ sở dữ liệu này, chúng ta sẽ chạy lệnh sau HIỂN THỊ BẢNG; Chúng tôi có một bảng có tên là Gocery_bill, trước tiên chúng tôi sẽ thử tạo một bảng có cùng tên TẠO BẢNG Grocery_bill (Employee_Id INT, Employee_name VARCHAR(50)); Chúng ta có thể thấy một lỗi đã được tạo ra rằng “Bảng ‘Grocery_bill’ đã tồn tại”, bây giờ chúng ta sẽ chạy lệnh trên bằng cách sử dụng tùy chọn “nếu không tồn tại” TẠO BẢNG nếu không tồn tại Grocery_bill (Employee_Id INT, Employee_name VARCHAR(50)); Lệnh chạy thành công nhưng chúng tôi đã thảo luận ở trên rằng không thể tạo hai bảng có cùng tên, vì vậy chúng tôi sẽ hiển thị lại các bảng của cơ sở dữ liệu để xác minh xem một bảng khác có được tạo hay không HIỂN THỊ BẢNG; Như vậy đã khẳng định rằng không thể tạo hai bảng có cùng tên và nếu chúng ta sử dụng “nếu không tồn tại”, nó sẽ chạy lệnh thành công mà không tạo ra lỗi nhưng sẽ không tạo bảng đã tồn tại với cùng một bảng . Bây giờ chúng ta sẽ tạo bảng bằng cách sử dụng lại mệnh đề “nếu không tồn tại” với một tên khác TẠO BẢNG nếu không tồn tại Employee_data (Employee_Id INT, Employee_name VARCHAR(50)); Một bảng mới đã được tạo thành công để xác minh điều này một lần nữa hiển thị các bảng của cơ sở dữ liệu HIỂN THỊ BẢNG; Bảng đã được tạo vì không có bảng nào đã tồn tại với tên “Employee_data” Phần kết luậnMySQL được nhiều công ty như Amazon và Twitter sử dụng vì các tính năng hiệu quả cao và các mệnh đề tích hợp khác nhau có thể đảm bảo hoàn thành các nhiệm vụ một cách dễ dàng. Trong MySQL tất cả dữ liệu được quản lý trong các bảng sau khi tạo, để tránh lỗi trùng bảng đã tồn tại chúng ta sử dụng mệnh đề “nếu không tồn tại” trong câu lệnh tạo bảng. Trong bài viết này, chúng ta đã thảo luận nếu mệnh đề “nếu không tồn tại” được sử dụng với câu lệnh “CREATE TABLE” thì nó sẽ thực thi lệnh thành công mà không tạo ra lỗi và chỉ tạo bảng nếu không có bảng nào khác có tên tương tự. Tôi gặp phải một tình huống khó chịu khi câu lệnh ALTER TABLE không thành công do khóa ngoại không bị hủy trước đó. Điều này dẫn đến một số mâu thuẫn trong từ điển dữ liệu InnoDB (có thể là do http. // lỗi. mysql. com/lỗi. php?id=58215) câu hỏi liên quan ở đây. https. // stackoverflow. com/questions/16857451/error-in-foreign-key-constraint-on-a-dropped-table
Lỗi khi đổi tên của '. /db/#sql-482c_8448f' thành '. /db/lượt truy cập' (không. 150)
Vì tôi không thể khôi phục bảng #sql-482c_8448f để truy cập, tôi quyết định nhập lại bảng từ bản sao lưu được thực hiện ngay trước khi thay đổi. Tuy nhiên điều này không thành công. Đang điều tra
SQL/Lỗi
Cố gắng tạo lại bảng mà không có khóa ngoại gây ra lỗi 150
Cố gắng tạo nó gây ra lỗi 121
Cuối cùng, tôi đã sử dụng một tên khóa ngoại mới. Tôi không mong đợi điều này hoạt động nhưng nó cho phép tạo bảng
Chỉ cần xóa bảng sau khi xóa bản ghi sai trong INFORMATION_SCHEMA. INNODB_SYS_FOREIGN, cho phép nhập với tên khóa ngoại ban đầu Làm cách nào tôi có thể xem tất cả trạng thái bảng trong MySQL?Bạn cũng có thể lấy danh sách này bằng lệnh mysqlshow --status db_name. Mệnh đề LIKE, nếu có, cho biết tên bảng nào sẽ khớp. . Tên. tên của cái bàn Động cơ. Công cụ lưu trữ cho bảng. . Phiên bản. . Row_format. . hàng. . Avg_row_length. . data_length. . Max_data_length Lower_case_table_names trong MySQL là gì?Sử dụng Lower_case_table_names=0 trên Unix và Lower_case_table_names=2 trên Windows. Điều này giữ nguyên chữ cái của cơ sở dữ liệu và tên bảng . Điều bất lợi của điều này là bạn phải đảm bảo rằng các câu lệnh của bạn luôn đề cập đến tên bảng và cơ sở dữ liệu của bạn với ký tự chính xác trên Windows.
Làm cách nào để sửa chữa dòng lệnh cơ sở dữ liệu MySQL?Chạy Quy trình khôi phục InnoDB . Định vị và mở tệp cấu hình chung bằng trình soạn thảo văn bản yêu thích của bạn. . Thêm tùy chọn sau vào my. tập tin cnf. [mysqld] innodb_force_recovery=4. . lưu và đóng tập tin Khởi động lại máy chủ MySQL để đảm bảo tệp cấu hình mới được áp dụng. systemctl khởi động lại mysql Tạo bảng là gì nếu không tồn tại?Mọi câu lệnh CREATE DATABASE IF NOT EXISTS đều được sao chép, cho dù cơ sở dữ liệu đã tồn tại trên nguồn hay chưa. Tương tự, mọi câu lệnh CREATE TABLE IF NOT EXISTS không có SELECT đều được sao chép, cho dù bảng đã tồn tại trên nguồn hay chưa . |