ฉันกำลังมองหาไวยากรณ์เพื่อเพิ่มคอลัมน์ในฐานข้อมูล MySQL ที่มีค่าเริ่มต้นเป็น 0
ฉันกำลังมองหาไวยากรณ์เพื่อเพิ่มคอลัมน์ในฐานข้อมูล MySQL ที่มีค่าเริ่มต้นเป็น 0
คำตอบ:
ลองสิ่งนี้:
ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;
จากเอกสารที่คุณเชื่อมโยงกับ:
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
alter_specification [, alter_specification] ...
alter_specification:
...
ADD [COLUMN] (col_name column_definition,...)
...
หากต้องการค้นหาไวยากรณ์เพื่อcolumn_definition
ค้นหาอีกเล็กน้อยในหน้า:
ส่วนคำสั่ง column_definition ใช้ไวยากรณ์เดียวกันสำหรับ ADD และ CHANGE เช่นเดียวกับ CREATE TABLE ดูส่วนที่ 12.1.17“ สร้างตารางไวยากรณ์”
และจากหน้าเชื่อมโยง:
column_definition:
data_type [NOT NULL | NULL] [DEFAULT default_value]
[AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
[COMMENT 'string']
[COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]
[STORAGE {DISK|MEMORY|DEFAULT}]
[reference_definition]
สังเกตคำว่า DEFAULT ที่นั่น
TINYINT(1)
ซึ่งเป็นวิธีที่มีประสิทธิภาพมากขึ้นกว่าการใช้INT
หมีที่ในใจเมื่อใช้นี้ "ถูกต้อง" คำตอบ
แบบนี้?
ALTER TABLE `tablename` ADD `new_col_name` INT NOT NULL DEFAULT 0;
tablename
เพิ่มnew_col_name
INT ไม่เป็นค่าเริ่มต้น '1'
เพียงเพิ่มdefault 0
ที่ส่วนท้ายของใบALTER TABLE <table> ADD COLUMN <column> <type>
แจ้งยอดของคุณ
ผู้ใช้ตาราง (user_id int PK ที่ไม่ได้ลงชื่อ, ชื่อผู้ใช้ varchar (32))
alter table users add column verified tinyint unsigned default 0
สิ่งนี้จะทำงานสำหรับประเภท ENUM เป็นค่าเริ่มต้น
ALTER TABLE engagete_st.holidays add column `STATUS` ENUM('A', 'D') default 'A' AFTER `H_TYPE`;
คุณสามารถลองสิ่งนี้
ALTER TABLE table_name ADD column_name INT DEFAULT 0;
ALTER TABLE my_table ADD COLUMN new_field TinyInt(1) DEFAULT 0;
หากคุณกำลังเรียนรู้ว่าการใช้ GUI เช่นSQLyogเป็นประโยชน์ให้ทำการเปลี่ยนแปลงโดยใช้โปรแกรมแล้วดูแท็บประวัติสำหรับคำสั่ง DDL ที่ทำการเปลี่ยนแปลงเหล่านั้น
ลองนี้ :)
ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT NOT NULL DEFAULT 0;
คำหลักที่มีประโยชน์อีกคำหนึ่งคือ FIRST และ AFTER ถ้าคุณต้องการเพิ่มในจุดเฉพาะในตารางของคุณ
ALTER TABLE `table1` ADD COLUMN `foo` AFTER `bar` INT DEFAULT 0;
bar
ควรเป็น * หลังจาก INT