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

Việc thay đổi loại trường mysql từ INT thành VARCHAR sẽ ảnh hưởng như thế nào đến dữ liệu được lưu trữ trước đó dưới dạng INT

Đưa máy chủ MySQL của bạn vào chế độ nghiêm ngặt trước khi bạn thay đổi loại cột và đảm bảo rằng varchar(n) của bạn cột có n đủ lớn để giữ tất cả các số nguyên khi chúng được chuyển đổi thành chuỗi. Nếu bạn không ở chế độ nghiêm ngặt thì MySQL sẽ âm thầm cắt bớt dữ liệu của bạn để phù hợp với kích thước chuỗi của bạn :

Nhưng nếu bạn vào chế độ nghiêm ngặt đầu tiên:

mysql> set sql_mode = 'STRICT_ALL_TABLES';
mysql> alter table table_sample change col_sample col_sample varchar(6);

Bạn sẽ nhận được một thông báo lỗi như sau:

ERROR 1406 (22001): Data too long for column 'col_sample' at row ...

nếu tất cả các số nguyên của bạn không vừa với varchar của bạn .

Và, tất nhiên, bạn sẽ có một bản sao lưu cơ sở dữ liệu mới đã được xác minh trước khi cố gắng thay đổi bảng. Và bởi đã xác minh Ý tôi là bạn đã khôi phục thành công bản sao lưu của mình vào cơ sở dữ liệu thử nghiệm.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC - Statement, PreparedStatement, CallableStatement và bộ nhớ đệm

  2. Truy vấn SQL trả về dữ liệu từ nhiều bảng

  3. Thực thi một thủ tục được lưu trữ với con trỏ trong PHP

  4. Làm cách nào để trích xuất từ ​​thứ n và đếm số lần xuất hiện của từ trong một chuỗi MySQL?

  5. Kết nối một bảng với nhiều bảng