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

Tự động cắt các chuỗi theo độ dài thích hợp khi chèn

Trên thực tế, MySQL cắt ngắn các chuỗi theo chiều rộng cột theo mặc định. Nó tạo ra một cảnh báo, nhưng cho phép chèn.

mysql> create table foo (str varchar(10));
mysql> insert into foo values ('abcdefghijklmnopqrstuvwxyz');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> show warnings;
+---------+------+------------------------------------------+
| Level   | Code | Message                                  |
+---------+------+------------------------------------------+
| Warning | 1265 | Data truncated for column 'str' at row 1 | 
+---------+------+------------------------------------------+
mysql> select * from foo;
+------------+
| str        |
+------------+
| abcdefghij | 
+------------+

Nếu bạn đặt chế độ SQL nghiêm ngặt, nó sẽ biến cảnh báo thành lỗi và từ chối chèn.

Nhận xét lại của bạn:Chế độ SQL là một cấu hình Máy chủ MySQL. Nó có thể không phải là PDO gây ra nó, nhưng mặt khác có thể, vì bất kỳ ứng dụng khách nào cũng có thể đặt chế độ SQL cho phiên của nó.

Bạn có thể truy xuất giá trị sql_mode toàn phiên hoặc phiên hiện tại bằng các câu lệnh sau:

SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;

Giá trị mặc định phải là một chuỗi trống (không có chế độ nào được đặt). Bạn có thể đặt chế độ SQL trong my.cnf của mình tệp, với --sql-mode tùy chọn cho mysqld hoặc sử dụng SET tuyên bố.

Cập nhật:MySQL 5.7 trở lên đặt chế độ nghiêm ngặt theo mặc định. Xem https://dev.mysql.com/doc/ refman / 5.7 / en / sql-mode.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ứng dụng kết nối với cơ sở dữ liệu

  2. Làm cách nào để xuất kết quả truy vấn MySQL ở định dạng CSV?

  3. Câu hỏi dễ dàng về mysql liên quan đến khóa chính và một bộ chèn

  4. Python 3.7, Bánh xe xây dựng không thành công cho MySql-Python

  5. Làm thế nào để sử dụng nhiều cơ sở dữ liệu cho một ứng dụng rails 3.1 trong Heroku?