เปลี่ยนชื่อตารางใน MySQL


285

การเปลี่ยนชื่อตารางไม่ทำงานใน MySQL

RENAME TABLE group TO member;

ข้อความแสดงข้อผิดพลาดคือ

#1064 - You have an error in your SQL syntax; check the manual that corresponds
        to your MySQL server version for the right syntax to use near 'group 
        RENAME TO member' at line 1

แบบสอบถามทำงานได้ดีบนโต๊ะอื่น ๆ สำหรับผม groupแต่ไม่ได้อยู่กับโต๊ะ



3
ทั้งสอง sqls เหมือนกัน ลองเปลี่ยนชื่อตาราง 'กลุ่ม' เป็นสมาชิก
user1406062

5
นี่แสดงให้เห็นว่าการใช้ตัวพิมพ์ใหญ่ทั้งหมดสำหรับคำหลักนั้นไม่มีประโยชน์อย่างไร
Martin Jambon

8
ไม่มันไม่ คำหลักทั้งหมดที่แคปช่วยปรับปรุงความสามารถในการอ่านและเป็นรูปแบบมาตรฐานที่คาดหวัง
fmalina

คำตอบ:


474

groupเป็นคำหลัก (ส่วนหนึ่งของGROUP BY ) ใน MySQL คุณต้องล้อมรอบด้วย backticks เพื่อแสดง MySQL ที่คุณต้องการให้ตีความเป็นชื่อตาราง:

RENAME TABLE `group` TO `member`;

เพิ่ม (ดูความคิดเห็น) - สิ่งเหล่านี้ไม่ใช่คำพูดเดียว


51
และใช่คุณต้องการเห็บหลัง 'และไม่ใช่คำพูดเดียว' ฉันทำคำพูดเดียวจากนิสัยและได้รับข้อผิดพลาด แต่บางทีนี่อาจจะช่วยคนอื่นอีก 10 วินาที
Paul

คำหลักบางคำเช่น NAME ยังคงสามารถใช้งานได้โดยไม่มีเครื่องหมายขีดกลับ ฉันคิดว่าความพร้อมใช้งานนี้เป็นวิธีปฏิบัติที่ไม่ดีซึ่งควรลบออกหนึ่งวันจาก MySQL
ad4s

2
หรือไม่ใช้คำหลักสำหรับตารางหรือคอลัมน์
jDub9

1
อย่าใช้คำสำคัญสำหรับแท็บเล็ตหรือคอลัมน์
mydoglixu


31

แบบสอบถาม mysql สำหรับเปลี่ยนชื่อตารางคือ

Rename Table old_name TO new_name

ในการสืบค้นของคุณคุณได้ใช้กลุ่มคำหลักหนึ่งใน MySQL พยายามหลีกเลี่ยงคำสำคัญ mysql สำหรับชื่อขณะสร้างตารางชื่อฟิลด์และอื่น ๆ



19

เปลี่ยนชื่อตารางใน MySQL:

ALTER TABLE current_name RENAME new_name;

5
ยินดีต้อนรับสู่ SO โปรดอ่านวิธีการตอบสำหรับการให้คำตอบที่มีคุณภาพนี้ เพียงแสดงรหัสไม่ใช่วิธีปฏิบัติที่ดี
ทุก


14

กลุ่ม - เป็นคำที่สงวนไว้ใน MySQL นั่นคือสาเหตุที่คุณเห็นข้อผิดพลาดดังกล่าว

#1064 - You have an error in your SQL syntax; check the manual that corresponds
        to your MySQL server version for the right syntax to use near 'group 
        RENAME TO member' at line 1

คุณต้องตัดชื่อตารางลงในbackticks :

RENAME TABLE `group` TO `member`;

13
ALTER TABLE `group` RENAME `member`

กลุ่มคือคำหลักดังนั้นคุณต้องใส่ไว้ใน group


9
RENAME TABLE tb1 TO tb2;

tb1 - ชื่อตารางปัจจุบัน tb2 - ชื่อที่คุณต้องการให้โต๊ะของคุณถูกเรียก


8

อ้างอิงจากmysql docs : "เพื่อเปลี่ยนชื่อTEMPORARYตารางRENAME TABLEใช้งานไม่ได้ใช้ALTER TABLEแทน"

ดังนั้นนี่เป็นวิธีพกพามากที่สุด:

ALTER TABLE `old_name` RENAME `new_name`;


2

สำหรับMysql 5.6.18ใช้คำสั่งดังต่อไปนี้

ALTER TABLE `old_table` RENAME TO `new_table`

และหากมีข้อผิดพลาดในการพูดว่า ".... ใกล้ RENAME TO ... " ให้ลองลบเห็บออก `



1

คุณสามารถใช้ได้

RENAME TABLE `group` TO `member`;

ใช้เครื่องหมายขีด (`) แทนเครื่องหมายคำพูดเดี่ยว (')


-1

โดยไม่ให้ชื่อฐานข้อมูลตารางไม่สามารถเปลี่ยนชื่อในกรณีของฉันฉันทำตามคำสั่งด้านล่างเพื่อเปลี่ยนชื่อตาราง

RENAME TABLE current_db.tbl_name TO current_db.tbl_name;

-6

คลิกขวาที่มุมมอง> แบบสอบถามใหม่

และประเภท: EXEC sp_rename 'Table', 'NewName'

จากนั้นคลิกที่ปุ่ม Run ที่มุมซ้ายบนของหน้า


MySQL ไม่ใช่ Transact SQL
Adam Joseph Looze
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.