SQL-ALTER-change和modify區別


 
ALTER 對於列的應用:
 
1.更改列名
     格式:CHANGE  old_col_name  new_col_name  column_definition
     保留old和new列名
         列名:a ---->b 列類型
   ALTER TABLE t1 CHANGE a b INTEGER;
 
2.更改列類型,不改列名
        保留old和new的列名,即使一樣。
     ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;
 
3.更改列類型,不改列名。
         不保留old列名。
     ALTER TABLE t1 MODIFY b BIGINT NOT NULL;
注意:
    < 1>.使用CHANGE或者MODIFY時,列的定義必須包含:數據的類型和應用到列上的屬性,但不包括:索引,例如:   PRIMARY KEY or  UNIQUE
         例如:  列的定義: INT UNSIGNED DEFAULT 1 COMMENT 'my column' 
            更改 : 
    ALTER TABLE t1 MODIFY col1  BIGINT UNSIGNED DEFAULT 1 COMMENT 'my column';
     <2>.使用CHANGE或者MODIFY改變數據類型時,列的值也會盡可能轉成對應的列類型。可能會丟失數據,最好,在使用ALTER table 之前設置;strict SQL mode
 
     <3>.增加指定位置的列,可以用FIRST,AFTER column_name,
 
     <4>.使用CHANGE,MODIFY縮短列的長度候,列長小於對應索引長度,索引會自動縮短。
 
 
4.更改列的默認值:ALTER TABLE tb_name ALTER column_name。
 
          CREATE TABLE test2(id INT ,NAME VARCHAR(4)); 在不指定默認值的情況下,建表之后:默認null。
          更改默認值:ALTER TABLE test2 ALTER name SET DEFAULT ''; 
          注意:更改默認值 只對更改之后,新插入的數據有效。表中以前的數據,是NULL還是NULL,是空還是空。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM