คำถามติดแท็ก alter-table

"ALTER TABLE" คือคำสั่ง SQL ที่ช่วยให้คุณสามารถทำการเปลี่ยนแปลงสคีมาในตารางฐานข้อมูล (เช่นเพิ่มวางหรือแก้ไขคอลัมน์จากตารางที่มีอยู่)

26
ฉันจะเปลี่ยนชื่อคอลัมน์ฐานข้อมูลในการโยกย้าย Ruby on Rails ได้อย่างไร
ฉันผิดชื่อคอลัมน์แทนhased_passwordhashed_password ฉันจะอัพเดตสกีมาฐานข้อมูลโดยใช้การโอนย้ายเพื่อเปลี่ยนชื่อคอลัมน์นี้ได้อย่างไร

13
การเปลี่ยนคอลัมน์: null เป็นไม่ null
ฉันมีตารางที่มีคอลัมน์จำนวนเต็ม null จำนวนหนึ่ง นี้เป็นที่ไม่พึงประสงค์ด้วยเหตุผลหลายประการดังนั้นฉันกำลังมองหาเพื่อปรับปรุง nulls ทั้งหมด 0 NOT NULLและจากนั้นตั้งค่าคอลัมน์เหล่านี้ลง นอกเหนือจากการเปลี่ยนค่า Null เป็น0ข้อมูลจะต้องถูกเก็บรักษาไว้ ฉันกำลังมองหาไวยากรณ์ SQL เฉพาะเพื่อแก้ไขคอลัมน์ (เรียกว่าColumnA) เป็น " not null" สมมติว่าข้อมูลได้รับการปรับปรุงเพื่อไม่ให้มีค่าว่าง ใช้SQL Server 2000

14
ตรวจสอบว่ามีตารางชั่วคราวและลบหากมีอยู่ก่อนสร้างตารางชั่วคราว
ฉันใช้รหัสต่อไปนี้เพื่อตรวจสอบว่ามีตารางชั่วคราวอยู่หรือไม่และวางตารางหากมีอยู่ก่อนสร้างอีกครั้ง มันทำงานได้ดีตราบใดที่ฉันไม่เปลี่ยนคอลัมน์ หากฉันเพิ่มคอลัมน์ในภายหลังมันจะให้ข้อผิดพลาดว่า "คอลัมน์ไม่ถูกต้อง" โปรดแจ้งให้เราทราบว่าฉันทำอะไรผิด IF OBJECT_ID('tempdb..#Results') IS NOT NULL DROP TABLE #Results CREATE TABLE #Results ( Company CHAR(3), StepId TINYINT, FieldId TINYINT, ) select company, stepid, fieldid from #Results --Works fine to this point IF OBJECT_ID('tempdb..#Results') IS NOT NULL DROP TABLE #Results CREATE TABLE #Results ( Company CHAR(3), StepId …


19
การเพิ่มเอกลักษณ์ให้กับคอลัมน์ที่มีอยู่
ฉันต้องเปลี่ยนคีย์หลักของตารางเป็นคอลัมน์ข้อมูลประจำตัวและมีจำนวนแถวในตารางอยู่แล้ว ฉันมีสคริปต์เพื่อล้าง ID เพื่อให้แน่ใจว่าพวกเขากำลังเรียงลำดับเริ่มต้นที่ 1 ทำงานได้ดีบนฐานข้อมูลทดสอบของฉัน คำสั่ง SQL ในการแก้ไขคอลัมน์เพื่อให้มีคุณสมบัติตัวตนคืออะไร?


9
เกิดข้อผิดพลาดในการเปลี่ยนชื่อคอลัมน์ใน MySQL
ฉันจะเปลี่ยนชื่อคอลัมน์ในตารางได้xyzอย่างไร คอลัมน์คือ: Manufacurerid, name, status, AI, PK, int ฉันต้องการเปลี่ยนชื่อเป็น manufacturerid ฉันพยายามใช้แผง PHPMyAdmin แต่ฉันได้รับข้อผิดพลาดนี้: MySQL said: Documentation #1025 - Error on rename of '.\shopping\#sql-c98_26' to '.\shopping\tblmanufacturer' (errno: 150)

8
วิธีการเปลี่ยนชื่อตารางใน SQL Server
SQLแบบสอบถามที่ฉันได้ใช้เป็น: ALTER TABLE oldtable RENAME TO newtable; แต่มันทำให้ฉันมีข้อผิดพลาด เซิร์ฟเวอร์: ข่าวสารเกี่ยวกับ 156 ระดับ 15 สถานะ 1 บรรทัดที่ 1 ไวยากรณ์ไม่ถูกต้องใกล้กับคำหลัก 'ถึง'



15
ฉันจะเปลี่ยนชื่อคอลัมน์ในตารางฐานข้อมูล SQLite ได้อย่างไร
ฉันต้องการเปลี่ยนชื่อคอลัมน์บางคอลัมน์ในบางตารางในฐานข้อมูล SQLite ฉันรู้ว่าคำถามที่คล้ายกันถูกถามใน stackoverflow ก่อนหน้านี้ แต่สำหรับ SQL โดยทั่วไปและกรณีของ SQLite ไม่ได้กล่าวถึง จากเอกสาร SQLite สำหรับALTER TABLEฉันรวบรวมว่ามันเป็นไปไม่ได้ที่จะทำสิ่งนั้น "ง่าย" (เช่นคำสั่ง ALTER TABLE เดียว) ฉันสงสัยว่ามีคนรู้วิธีการทั่วไปของ SQL ในการทำสิ่งนั้นกับ SQLite


15
SQL Server เพิ่มคีย์หลักที่เพิ่มขึ้นอัตโนมัติไปยังตารางที่มีอยู่
ในฐานะที่เป็นชื่อฉันมีตารางที่มีอยู่ซึ่งมีประชากร 150000 รายการอยู่แล้ว ฉันได้เพิ่มคอลัมน์รหัส (ซึ่งปัจจุบันเป็นโมฆะ) ฉันสมมติว่าฉันสามารถเรียกใช้แบบสอบถามเพื่อเติมคอลัมน์นี้ด้วยตัวเลขที่เพิ่มขึ้นจากนั้นตั้งค่าเป็นคีย์หลักและเปิดใช้การเพิ่มอัตโนมัติ นี่เป็นวิธีที่ถูกต้องในการดำเนินการต่อหรือไม่? และถ้าเป็นเช่นนั้นฉันจะเติมตัวเลขเริ่มต้นได้อย่างไร

8
ฉันจะเพิ่มคอลัมน์ในฐานข้อมูล Postgresql ที่ไม่อนุญาตให้มีค่าว่างได้อย่างไร
ฉันเพิ่มคอลัมน์ "ไม่เป็นโมฆะ" ใหม่ลงในฐานข้อมูล Postgresql ของฉันโดยใช้แบบสอบถามต่อไปนี้ (ฆ่าเชื้อสำหรับอินเทอร์เน็ต): ALTER TABLE mytable ADD COLUMN mycolumn character varying(50) NOT NULL; ทุกครั้งที่ฉันเรียกใช้แบบสอบถามนี้ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: ERROR: column "mycolumn" contains null values ฉันนิ่งงัน ฉันจะไปไหนผิด หมายเหตุ: ฉันใช้ pgAdmin III (1.8.4) เป็นหลัก แต่ฉันได้รับข้อผิดพลาดเดียวกันเมื่อฉันรัน SQL จากภายในเทอร์มินัล

6
แก้ไขตารางเพื่อเพิ่มคีย์หลักแบบรวม
providerผมมีตารางที่เรียกว่า ฉันมีคอลัมน์ที่สามเรียกว่าperson, ,place thingอาจมีบุคคลที่ซ้ำกันสถานที่ที่ซ้ำกันและสิ่งที่ซ้ำกัน แต่จะไม่มีการรวมกันระหว่างสิ่งที่อยู่ในสถานที่ที่ซ้ำกันได้ ฉันจะแก้ไขตารางเพื่อเพิ่มคีย์หลักรวมสำหรับตารางนี้ใน MySQL ด้วยสามคอลัมน์นี้ได้อย่างไร

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