Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

มีวิธีแปลงฟิลด์ Integer เป็น Varchar โดยไม่สูญเสียข้อมูลใน MySQL หรือไม่?


คุณสามารถใช้คำสั่ง ALTER เพื่อแปลงจำนวนเต็มเป็น Varchar เรามาสร้างตารางกันก่อน

mysql> สร้างตาราง DemoTable( UserId int, UserFirstName varchar(20), UserLastName varchar(20), UserAge int);แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.73 วินาที)

ตอนนี้ตรวจสอบคำอธิบายของตารางโดยใช้คำสั่ง DESC:

mysql> อธิบาย DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+--------------+-------------+------+-----+--- ------+-------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+--------------+-------------+------+-----+---- -----+-------+| รหัสผู้ใช้ | int(11) | ใช่ | | NULL | || UserFirstName | varchar(20) | ใช่ | | NULL | || ชื่อผู้ใช้ | varchar(20) | ใช่ | | NULL | || อายุผู้ใช้ | int(11) | ใช่ | | NULL | |+ ---------------+-------------+------+ -----+----- ----+-------+4 แถวในชุด (0.17 วินาที)

ตอนนี้คุณสามารถเปลี่ยนประเภทข้อมูลจำนวนเต็มเป็น varchar ได้โดยไม่สูญเสียข้อมูล:

mysql> แก้ไขตาราง DemoTable เปลี่ยน UserId UserId varchar(20);ตกลง สืบค้น 0 แถวได้รับผลกระทบ (1.35 วินาที) บันทึก:0 รายการซ้ำ:0 คำเตือน:0

ตรวจสอบคำอธิบายตาราง:

mysql> อธิบาย DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+--------------+-------------+------+-----+--- ------+-------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+--------------+-------------+------+-----+---- -----+-------+| รหัสผู้ใช้ | varchar(20) | ใช่ | | NULL | || UserFirstName | varchar(20) | ใช่ | | NULL | || ชื่อผู้ใช้ | varchar(20) | ใช่ | | NULL | || อายุผู้ใช้ | int(11) | ใช่ | | NULL | |+ ---------------+-------------+------+ -----+----- ----+-------+4 แถวในชุด (0.00 วินาที)