Đư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.