1. 程式人生 > >mysql修改表結構 MySQL修改表結構操作命令總結 MySql資料庫在表中新增新欄位,設定主鍵,設定外來鍵,欄位移動位置,以及修改資料庫後如何進行部署和維護的總結 mysql 如何修改、新增、刪除表主鍵

mysql修改表結構 MySQL修改表結構操作命令總結 MySql資料庫在表中新增新欄位,設定主鍵,設定外來鍵,欄位移動位置,以及修改資料庫後如何進行部署和維護的總結 mysql 如何修改、新增、刪除表主鍵

MySQL修改表結構操作命令總結

以下內容轉自:http://www.jb51.net/article/58079.htm

表的結構如下:

 

複製程式碼程式碼如下:
mysql> show create table person;
| person | CREATE TABLE `person` (
  `number` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `birthday` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |

 

刪除列:

 

複製程式碼程式碼如下:
ALTER TABLE person DROP COLUMN birthday; 

 

新增列:

 

複製程式碼程式碼如下:
ALTER TABLE person ADD COLUMN birthday datetime;

 

修改列,把number修改為bigint:

 

複製程式碼程式碼如下:
ALTER TABLE person MODIFY number BIGINT NOT NULL;

 

或者是把number修改為id,型別為bigint:

 

複製程式碼程式碼如下:
ALTER TABLE person CHANGE number id BIGINT;

 

新增主鍵:

 

複製程式碼程式碼如下:
ALTER TABLE person ADD PRIMARY KEY (id);

 

刪除主鍵:

 

複製程式碼程式碼如下:
ALTER TABLE person DROP PRIMARY KEY;

 

新增唯一索引:

 

複製程式碼程式碼如下:
ALTER TABLE person ADD UNIQUE name_unique_index (`name`);

 

為name這一列建立了唯一索引,索引的名字是name_unique_index.

新增普通索引:

 

複製程式碼程式碼如下:
ALTER TABLE person ADD INDEX birthday_index (`birthday`);

 

刪除索引:

 

複製程式碼程式碼如下:
ALTER TABLE person DROP INDEX birthday_index;
ALTER TABLE person DROP INDEX name_unique_index;

 

禁用非唯一索引

 

複製程式碼程式碼如下:
ALTER TABLE person DISABLE KEYS;


ALTER TABLE...DISABLE KEYS讓MySQL停止更新MyISAM表中的非唯一索引。

 

啟用非唯一索引

 

複製程式碼程式碼如下:
ALTER TABLE person ENABLE KEYS;


ALTER TABLE ... ENABLE KEYS重新建立丟失的索引。

 

把表預設的字符集和所有字元列(CHAR, VARCHAR, TEXT)改為新的字符集:

 

複製程式碼程式碼如下:
ALTER TABLE person CONVERT TO CHARACTER SET utf8;

 

修改表某一列的編碼

 

複製程式碼程式碼如下:
ALTER TABLE person CHANGE name name varchar(255) CHARACTER SET utf8;

 

僅僅改變一個表的預設字符集

 

複製程式碼程式碼如下:
ALTER TABLE person DEFAULT CHARACTER SET utf8;

 

修改表名

 

複製程式碼程式碼如下:
RENAME TABLE person TO person_other;

 

移動表到其他資料庫

 

複製程式碼程式碼如下:
RENAME TABLE current_db.tbl_name TO other_db.tbl_name;

 

 

以下內容轉自:http://www.cnblogs.com/FranklinD/p/4320155.html

MySql資料庫在表中新增新欄位,設定主鍵,設定外來鍵,欄位移動位置,以及修改資料庫後如何進行部署和維護的總結

 

1,為當前已有的表新增新的欄位

alter table student add studentName varchar(20) not null;

2,為當前已有的表中的欄位設定為主鍵自增

alter table student add constraint PK_studentId primaryKey(studentId);

3,為當前已有的表中的欄位設定為外來鍵

alter table student add constraint FK_teacherId_studentInfo foreign key (teacherId) references teacherInfo(teacherId)

alter table 表名 add constraint 鍵名 foreign key (外來鍵欄位名) references 主表名(主表主鍵名)

4,欄位移動位置

alter table student modify studentId varchar(20) first

將student表中的studentId欄位的位置移動到第一位

 

5,關於修改資料庫結構後,如何部署,以及操作過程的總結

 

在專案開發過程中補課避免的需要修改資料庫的表結構,經過這幾天的操作總結的操作流程是

1,將遠端伺服器上的資料庫複製到本地

2,在本地將資料庫的結構進行修改,並研發新的專案功能

3,功能研發完畢,對比之前的資料庫看修改了哪些結構,然後統一將這些操作利用指令碼的方式寫出來

4,將本地的資料庫恢復成未修改之前的,然後執行指令碼,為當前本地的資料庫修改結構

5,然後檢視新增的功能是否能夠正常執行

6,如果出錯則重複3,4步,直至利用指令碼能夠直接完美的修改資料庫結構,並再次測試新的功能是否能夠正常執行

7,如果功能能夠正常執行則進行下一步部署伺服器

8,首先將遠端伺服器中的資料庫進行備份

9,部署新增的功能

10,利用指令碼修改伺服器中的資料庫

11,修改完畢後檢視新功能是否能夠正常執行,如果能夠正常執行並且日誌檔案中沒有出錯,則表明部署成功!

12,如果有出錯的話,則先恢復資料庫並且重複8,9,10,11步

 

以下內容轉自:http://www.cnblogs.com/mfryf/p/3457481.html

mysql 如何修改、新增、刪除表主鍵

在我們使用mysql的時候,有時會遇到須要更改或者刪除mysql的主鍵,我們能夠簡單的使用alter table table_name drop primary key;來完成。以下我使用資料表table_test來作了樣例。
1、首先建立一個數據表table_test:
create table table_test(
`id` varchar(100) NOT NULL,
`name` varchar(100) NOT NULL,
PRIMARY KEY (`name`)
)ENGINE=MyISAM DEFAULT CHARSET=gb2312;
2、如果發現主鍵設定錯了,應該是id是主鍵,但如今表裡已經有好多資料了,不能刪除表再重建了,僅僅能在這基礎上改動表結構。
先刪除主鍵
alter table table_test drop primary key;
然後再增加主鍵
alter table table_test add primary key(id);
注:在增加主鍵之前,必須先把反覆的id刪除掉。

 

以下內容轉自:http://www.cnblogs.com/suiy-160428/p/5649911.html

MySQL修改主鍵屬性:

前言:在學習MySQL的過程中,對於主鍵的屬性以及操作理解較模糊,在輸入多條修改主鍵屬性的語句後經常報錯,所以想整理一下這個過程中遇到的問題,作為自己的學習記錄,可能都是基礎知識,但也希望提高自己對資料庫的理解,同時也能幫助到其他人。


  主鍵約束在資料表中可以定義一個主鍵值,唯一確定表中的每一條記錄。每張表中只能有一個primary key,並且primary key不能為空。如果主鍵約束定義在不止一列,則一列的值可以重複,但是主鍵約束定義中的所有列組合必須唯一。

1. 新增主鍵約束:

alter table tbl_name add primary key (index_col_name,…);
#括號中為欄位名,可以為一個或者多個

2. 在資料表已存在的情況下,且無主鍵,新增新的欄位作為主鍵,並將該欄位移到表格的第一列

alter table tbl_name add col_name col_definition (data type, null, default...) primary key first current_first_col_name;
# current_first_col_name表示當前資料表的第一列  

Notes:關鍵字first表示位於某一列的前面,如果加入的欄位需要位於某一列的後面,可以使用after

 3. 資料表已存在,且有主鍵,修改主鍵的定義

關鍵字modify

alter table tbl_name modify col_name col_definition [first|after col_name]
#在col_definition 宣告要修改的屬性,如要新增自動編號auto_increment 

Notes:

1)  此時不需要重新宣告主鍵屬性primary key,如果添加了則會報錯:主鍵重複;

2)  如果原有屬性中存在auto_increment,修改時需要加上auto_increment,否則auto_increment屬性被刪除

關鍵字change

alter table tbl_name change col_name col_name col_definition [first|after col_name]
#與modify的區別在於列表需要寫兩次列名,相當於原列名和新列名,所以change也可以用來修改列名

以下內容轉自:http://www.jb51.net/article/58079.htm

表的結構如下:

 

複製程式碼程式碼如下:
mysql> show create table person;
| person | CREATE TABLE `person` (
  `number` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `birthday` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |

 

刪除列:

 

複製程式碼程式碼如下:
ALTER TABLE person DROP COLUMN birthday; 

 

新增列:

 

複製程式碼程式碼如下:
ALTER TABLE person ADD COLUMN birthday datetime;

 

修改列,把number修改為bigint:

 

複製程式碼程式碼如下:
ALTER TABLE person MODIFY number BIGINT NOT NULL;

 

或者是把number修改為id,型別為bigint:

 

複製程式碼程式碼如下:
ALTER TABLE person CHANGE number id BIGINT;

 

新增主鍵:

 

複製程式碼程式碼如下:
ALTER TABLE person ADD PRIMARY KEY (id);

 

刪除主鍵:

 

複製程式碼程式碼如下:
ALTER TABLE person DROP PRIMARY KEY;

 

新增唯一索引:

 

複製程式碼程式碼如下:
ALTER TABLE person ADD UNIQUE name_unique_index (`name`);

 

為name這一列建立了唯一索引,索引的名字是name_unique_index.

新增普通索引:

 

複製程式碼程式碼如下:
ALTER TABLE person ADD INDEX birthday_index (`birthday`);

 

刪除索引:

 

複製程式碼程式碼如下:
ALTER TABLE person DROP INDEX birthday_index;
ALTER TABLE person DROP INDEX name_unique_index;

 

禁用非唯一索引

 

複製程式碼程式碼如下:
ALTER TABLE person DISABLE KEYS;


ALTER TABLE...DISABLE KEYS讓MySQL停止更新MyISAM表中的非唯一索引。

 

啟用非唯一索引

 

複製程式碼程式碼如下:
ALTER TABLE person ENABLE KEYS;


ALTER TABLE ... ENABLE KEYS重新建立丟失的索引。

 

把表預設的字符集和所有字元列(CHAR, VARCHAR, TEXT)改為新的字符集:

 

複製程式碼程式碼如下:
ALTER TABLE person CONVERT TO CHARACTER SET utf8;

 

修改表某一列的編碼

 

複製程式碼程式碼如下:
ALTER TABLE person CHANGE name name varchar(255) CHARACTER SET utf8;

 

僅僅改變一個表的預設字符集

 

複製程式碼程式碼如下:
ALTER TABLE person DEFAULT CHARACTER SET utf8;

 

修改表名

 

複製程式碼程式碼如下:
RENAME TABLE person TO person_other;

 

移動表到其他資料庫

 

複製程式碼程式碼如下:
RENAME TABLE current_db.tbl_name TO other_db.tbl_name;

 

 

以下內容轉自:http://www.cnblogs.com/FranklinD/p/4320155.html

MySql資料庫在表中新增新欄位,設定主鍵,設定外來鍵,欄位移動位置,以及修改資料庫後如何進行部署和維護的總結

 

1,為當前已有的表新增新的欄位

alter table student add studentName varchar(20) not null;

2,為當前已有的表中的欄位設定為主鍵自增

alter table student add constraint PK_studentId primaryKey(studentId);

3,為當前已有的表中的欄位設定為外來鍵

alter table student add constraint FK_teacherId_studentInfo foreign key (teacherId) references teacherInfo(teacherId)

alter table 表名 add constraint 鍵名 foreign key (外來鍵欄位名) references 主表名(主表主鍵名)

4,欄位移動位置

alter table student modify studentId varchar(20) first

將student表中的studentId欄位的位置移動到第一位

 

5,關於修改資料庫結構後,如何部署,以及操作過程的總結

 

在專案開發過程中補課避免的需要修改資料庫的表結構,經過這幾天的操作總結的操作流程是

1,將遠端伺服器上的資料庫複製到本地

2,在本地將資料庫的結構進行修改,並研發新的專案功能

3,功能研發完畢,對比之前的資料庫看修改了哪些結構,然後統一將這些操作利用指令碼的方式寫出來

4,將本地的資料庫恢復成未修改之前的,然後執行指令碼,為當前本地的資料庫修改結構

5,然後檢視新增的功能是否能夠正常執行

6,如果出錯則重複3,4步,直至利用指令碼能夠直接完美的修改資料庫結構,並再次測試新的功能是否能夠正常執行

7,如果功能能夠正常執行則進行下一步部署伺服器

8,首先將遠端伺服器中的資料庫進行備份

9,部署新增的功能

10,利用指令碼修改伺服器中的資料庫

11,修改完畢後檢視新功能是否能夠正常執行,如果能夠正常執行並且日誌檔案中沒有出錯,則表明部署成功!

12,如果有出錯的話,則先恢復資料庫並且重複8,9,10,11步

 

以下內容轉自:http://www.cnblogs.com/mfryf/p/3457481.html

mysql 如何修改、新增、刪除表主鍵

在我們使用mysql的時候,有時會遇到須要更改或者刪除mysql的主鍵,我們能夠簡單的使用alter table table_name drop primary key;來完成。以下我使用資料表table_test來作了樣例。
1、首先建立一個數據表table_test:
create table table_test(
`id` varchar(100) NOT NULL,
`name` varchar(100) NOT NULL,
PRIMARY KEY (`name`)
)ENGINE=MyISAM DEFAULT CHARSET=gb2312;
2、如果發現主鍵設定錯了,應該是id是主鍵,但如今表裡已經有好多資料了,不能刪除表再重建了,僅僅能在這基礎上改動表結構。
先刪除主鍵
alter table table_test drop primary key;
然後再增加主鍵
alter table table_test add primary key(id);
注:在增加主鍵之前,必須先把反覆的id刪除掉。

 

以下內容轉自:http://www.cnblogs.com/suiy-160428/p/5649911.html

MySQL修改主鍵屬性:

前言:在學習MySQL的過程中,對於主鍵的屬性以及操作理解較模糊,在輸入多條修改主鍵屬性的語句後經常報錯,所以想整理一下這個過程中遇到的問題,作為自己的學習記錄,可能都是基礎知識,但也希望提高自己對資料庫的理解,同時也能幫助到其他人。


  主鍵約束在資料表中可以定義一個主鍵值,唯一確定表中的每一條記錄。每張表中只能有一個primary key,並且primary key不能為空。如果主鍵約束定義在不止一列,則一列的值可以重複,但是主鍵約束定義中的所有列組合必須唯一。

1. 新增主鍵約束:

alter table tbl_name add primary key (index_col_name,…);
#括號中為欄位名,可以為一個或者多個

2. 在資料表已存在的情況下,且無主鍵,新增新的欄位作為主鍵,並將該欄位移到表格的第一列

alter table tbl_name add col_name col_definition (data type, null, default...) primary key first current_first_col_name;
# current_first_col_name表示當前資料表的第一列  

Notes:關鍵字first表示位於某一列的前面,如果加入的欄位需要位於某一列的後面,可以使用after

 3. 資料表已存在,且有主鍵,修改主鍵的定義

關鍵字modify

alter table tbl_name modify col_name col_definition [first|after col_name]
#在col_definition 宣告要修改的屬性,如要新增自動編號auto_increment 

Notes:

1)  此時不需要重新宣告主鍵屬性primary key,如果添加了則會報錯:主鍵重複;

2)  如果原有屬性中存在auto_increment,修改時需要加上auto_increment,否則auto_increment屬性被刪除

關鍵字change

alter table tbl_name change col_name col_name col_definition [first|after col_name]
#與modify的區別在於列表需要寫兩次列名,相當於原列名和新列名,所以change也可以用來修改列名

1,為當前已有的表新增新的欄位

alter table student add studentName varchar(20) not null;

2,為當前已有的表中的欄位設定為主鍵自增

alter table student add constraint PK_studentId primaryKey(studentId);

3,為當前已有的表中的欄位設定為外來鍵

alter table student add constraint FK_teacherId_studentInfo foreign key (teacherId) references teacherInfo(teacherId)

alter table 表名 add constraint 鍵名 foreign key (外來鍵欄位名) references 主表名(主表主鍵名)

4,欄位移動位置

alter table student modify studentId varchar(20) first

將student表中的studentId欄位的位置移動到第一位

 

5,關於修改資料庫結構後,如何部署,以及操作過程的總結

 

在專案開發過程中補課避免的需要修改資料庫的表結構,經過這幾天的操作總結的操作流程是

1,將遠端伺服器上的資料庫複製到本地

2,在本地將資料庫的結構進行修改,並研發新的專案功能

3,功能研發完畢,對比之前的資料庫看修改了哪些結構,然後統一將這些操作利用指令碼的方式寫出來

4,將本地的資料庫恢復成未修改之前的,然後執行指令碼,為當前本地的資料庫修改結構

5,然後檢視新增的功能是否能夠正常執行

6,如果出錯則重複3,4步,直至利用指令碼能夠直接完美的修改資料庫結構,並再次測試新的功能是否能夠正常執行

7,如果功能能夠正常執行則進行下一步部署伺服器

8,首先將遠端伺服器中的資料庫進行備份

9,部署新增的功能

10,利用指令碼修改伺服器中的資料庫

11,修改完畢後檢視新功能是否能夠正常執行,如果能夠正常執行並且日誌檔案中沒有出錯,則表明部署成功!

12,如果有出錯的話,則先恢復資料庫並且重複8,9,10,11步

 

以下內容轉自:http://www.cnblogs.com/mfryf/p/3457481.html

mysql 如何修改、新增、刪除表主鍵

在我們使用mysql的時候,有時會遇到須要更改或者刪除mysql的主鍵,我們能夠簡單的使用alter table table_name drop primary key;來完成。以下我使用資料表table_test來作了樣例。
1、首先建立一個數據表table_test:
create table table_test(
`id` varchar(100) NOT NULL,
`name` varchar(100) NOT NULL,
PRIMARY KEY (`name`)
)ENGINE=MyISAM DEFAULT CHARSET=gb2312;
2、如果發現主鍵設定錯了,應該是id是主鍵,但如今表裡已經有好多資料了,不能刪除表再重建了,僅僅能在這基礎上改動表結構。
先刪除主鍵
alter table table_test drop primary key;
然後再增加主鍵
alter table table_test add primary key(id);
注:在增加主鍵之前,必須先把反覆的id刪除掉。

 

以下內容轉自:http://www.cnblogs.com/suiy-160428/p/5649911.html

MySQL修改主鍵屬性:

前言:在學習MySQL的過程中,對於主鍵的屬性以及操作理解較模糊,在輸入多條修改主鍵屬性的語句後經常報錯,所以想整理一下這個過程中遇到的問題,作為自己的學習記錄,可能都是基礎知識,但也希望提高自己對資料庫的理解,同時也能幫助到其他人。


  主鍵約束在資料表中可以定義一個主鍵值,唯一確定表中的每一條記錄。每張表中只能有一個primary key,並且primary key不能為空。如果主鍵約束定義在不止一列,則一列的值可以重複,但是主鍵約束定義中的所有列組合必須唯一。

1. 新增主鍵約束:

alter table tbl_name add primary key (index_col_name,…);
#括號中為欄位名,可以為一個或者多個

2. 在資料表已存在的情況下,且無主鍵,新增新的欄位作為主鍵,並將該欄位移到表格的第一列

alter table tbl_name add col_name col_definition (data type, null, default...) primary key first current_first_col_name;
# current_first_col_name表示當前資料表的第一列  

Notes:關鍵字first表示位於某一列的前面,如果加入的欄位需要位於某一列的後面,可以使用after

 3. 資料表已存在,且有主鍵,修改主鍵的定義

關鍵字modify

alter table tbl_name modify col_name col_definition [first|after col_name]
#在col_definition 宣告要修改的屬性,如要新增自動編號auto_increment 

Notes:

1)  此時不需要重新宣告主鍵屬性primary key,如果添加了則會報錯:主鍵重複;

2)  如果原有屬性中存在auto_increment,修改時需要加上auto_increment,否則auto_increment屬性被刪除

關鍵字change

alter table tbl_name change col_name col_name col_definition [first|after col_name]
#與modify的區別在於列表需要寫兩次列名,相當於原列名和新列名,所以change也可以用來修改列名

在我們使用mysql的時候,有時會遇到須要更改或者刪除mysql的主鍵,我們能夠簡單的使用alter table table_name drop primary key;來完成。以下我使用資料表table_test來作了樣例。
1、首先建立一個數據表table_test:
create table table_test(
`id` varchar(100) NOT NULL,
`name` varchar(100) NOT NULL,
PRIMARY KEY (`name`)
)ENGINE=MyISAM DEFAULT CHARSET=gb2312;
2、如果發現主鍵設定錯了,應該是id是主鍵,但如今表裡已經有好多資料了,不能刪除表再重建了,僅僅能在這基礎上改動表結構。
先刪除主鍵
alter table table_test drop primary key;
然後再增加主鍵
alter table table_test add primary key(id);
注:在增加主鍵之前,必須先把反覆的id刪除掉。

 

以下內容轉自:http://www.cnblogs.com/suiy-160428/p/5649911.html

MySQL修改主鍵屬性:

前言:在學習MySQL的過程中,對於主鍵的屬性以及操作理解較模糊,在輸入多條修改主鍵屬性的語句後經常報錯,所以想整理一下這個過程中遇到的問題,作為自己的學習記錄,可能都是基礎知識,但也希望提高自己對資料庫的理解,同時也能幫助到其他人。


  主鍵約束在資料表中可以定義一個主鍵值,唯一確定表中的每一條記錄。每張表中只能有一個primary key,並且primary key不能為空。如果主鍵約束定義在不止一列,則一列的值可以重複,但是主鍵約束定義中的所有列組合必須唯一。

1. 新增主鍵約束:

alter table tbl_name add primary key (index_col_name,…);
#括號中為欄位名,可以為一個或者多個

2. 在資料表已存在的情況下,且無主鍵,新增新的欄位作為主鍵,並將該欄位移到表格的第一列

alter table tbl_name add col_name col_definition (data type, null, default...) primary key first current_first_col_name;
# current_first_col_name表示當前資料表的第一列  

Notes:關鍵字first表示位於某一列的前面,如果加入的欄位需要位於某一列的後面,可以使用after

 3. 資料表已存在,且有主鍵,修改主鍵的定義

關鍵字modify

alter table tbl_name modify col_name col_definition [first|after col_name]
#在col_definition 宣告要修改的屬性,如要新增自動編號auto_increment 

Notes:

1)  此時不需要重新宣告主鍵屬性primary key,如果添加了則會報錯:主鍵重複;

2)  如果原有屬性中存在auto_increment,修改時需要加上auto_increment,否則auto_increment屬性被刪除

關鍵字change

alter table tbl_name change col_name col_name col_definition [first|after col_name]
#與modify的區別在於列表需要寫兩次列名,相當於原列名和新列名,所以change也可以用來修改列名