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

Làm thế nào để cho phép chuỗi trống cho số nguyên trong MySQL?

Có 2 cách để thực hiện việc này.

  1. Đối với Phiên Mysql Hiện tại (Giải pháp Tạm thời)

Đầu tiên hãy thực hiện truy vấn để có được chế độ SQL hiện tại của máy chủ mysql của bạn.

    mysql> SELECT @@sql_mode;
    +----------------------------------------------------------------+
    | @@sql_mode                                                     |
    +----------------------------------------------------------------+
    |STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  |
    +----------------------------------------------------------------+
    1 row in set (0.00 sec)

Nếu kết quả chứa STRICT_TRANS_TABLES , bạn phải loại bỏ giá trị đó để cho phép truy vấn chèn truyền giá trị NULL. Đảm bảo Người dùng mysql của bạn có đặc quyền áp dụng các thay đổi này và khởi động lại Máy chủ Mysql sau khi áp dụng điều này.

    SET GLOBAL sql_mode = '';
  1. For Life Time of Mysql (Giải pháp vĩnh viễn)

Bạn phải cập nhật tệp my.cnf. Vị trí của tệp đó là:\ etc \ my.cnf hoặc \ etc \ mysql \ mysql.cnf

Sẽ có một số tham số mặc định được đặt trong [mysqld] như

[mysqld]
innodb_file_per_table=1
default-storage-engine=MyISAM
performance-schema=0
max_allowed_packet=268435456
open_files_limit=10000

Chỉ cần thêm một dòng dưới đó

sql-mode=""

Đảm bảo khởi động lại Mysql Server sau khi thay đổi tệp này. Thông thường người dùng root sẽ là chủ sở hữu của tệp, vì vậy bạn phải đăng nhập bằng người dùng root trên máy chủ.

Để biết thêm chi tiết để hiểu chế độ SQL này làm gì.

STRICT_TRANS_TABLES

Bật chế độ SQL nghiêm ngặt cho các công cụ lưu trữ giao dịch và khi có thể cho các công cụ lưu trữ không giao dịch. Để biết chi tiết, hãy xem Chế độ SQL nghiêm ngặt.

Tham khảo: http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_strict_trans_tables

NO_AUTO_CREATE_USER

Ngăn câu lệnh GRANT tự động tạo tài khoản người dùng mới nếu nó sẽ làm như vậy, trừ khi thông tin xác thực được chỉ định. Câu lệnh phải chỉ định một mật khẩu trống bằng IDENTIFIED BY hoặc một plugin xác thực sử dụng IDENTIFIED WITH.

Tham khảo: http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_no_auto_create_user

NO_ENGINE_SUBSTITUTION

Kiểm soát việc thay thế tự động công cụ lưu trữ mặc định khi một câu lệnh chẳng hạn như TẠO BẢNG BIỂU hoặc BẢNG ALTER chỉ định một công cụ lưu trữ bị tắt hoặc không được biên dịch trong.

Tham khảo: http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_no_engine_substitution



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có nhiều truy vấn muốn hợp nhất tất cả các kết quả truy vấn vào cùng một bảng

  2. Khóa ngoại MySQL khi xóa

  3. biến vòng lặp php while cho mọi div thứ ba

  4. Nối nhiều cột từ một bảng thành một cột từ một bảng khác

  5. Sự cố với các ký tự cyrillic trong url thân thiện