mysql修改表結構

来源:https://www.cnblogs.com/lvhaiqing/archive/2018/11/23/10009523.html
-Advertisement-
Play Games

MySQL修改表結構操作命令總結 MySQL修改表結構操作命令總結 MySQL修改表結構操作命令總結 以下內容轉自:http://www.jb51.net/article/58079.htm 表的結構如下: 複製代碼代碼如下: mysql> show create table person;| pe ...


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也可以用來修改列名

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 記憶體管理域zone 為了支持NUMA模型,也即CPU對不同記憶體單元的訪問時間可能不同,此時系統的物理記憶體被劃分為幾個節點(node), 一個node對應一個記憶體簇bank,即每個記憶體簇被認為是一個節點 首先, 記憶體被劃分為結點. 每個節點關聯到系統中的一個處理器, 內核中表示為 的實例. 系統中 ...
  • 大學生Linux常用命令(一) 1.1 命令格式 命令格式一般為 命令名 [選項] [參數1] [參數2]… 例如:cp I file1 cp為命令名, l為選項,file1為參數。 其中,命令名必須要有,選項和參數可有可無,具體按照要求來操作。 1.2輸入命令 LinuxUI一定要註意大小寫 如果 ...
  • Linux 文件或目錄的屬性主要包括:文件或目錄的節點、種類、許可權模式、鏈接數量、所歸屬的用戶和用戶組、最近訪問或修改的時間等內容。具體情況如下: 命令: ls lih 輸出: 忘記ls 命令參數的,可以參考: "linux每日命令(1):ls命令" 說明: 第一列:inode 第二列:文件種類和權 ...
  • 歷史命令查詢: history 查看使用過的命令 history -c 清空歷史命令 history -w 把緩存的命令寫入到文件中。文件在/root/.bash_history 註:輸出執行過的所有命令,不管對錯,如果需要重新執行某條命令,“!行號”可以再次執行。如!256,就執行了第256行的這 ...
  • Centos6 [root@Centos6 ~]$ hostname # 查看當前的hostnmae Centos6 [root@Centos6 ~]$ vim /etc/sysconfig/network # 編輯network文件修改hostname行(重啟生效) [root@Centos6 ~ ...
  • 1.MTR(mini-transaction) 在MySQL的 InnoDB日誌管理機制中,有一個很重要的概念就是MTR。MTR是InnoDB存儲擎中一個很重要的用來保證物理寫的完整性和持久性的機制。 先看下MTR在MysQL架構中的位置。 MTR是上面的邏輯層與下麵物理層的交互視窗,同時也是用來保 ...
  • Nodejs 操作 Sql Server Intro 最近項目需要爬取一些數據,數據有加密,前端的js又被混淆了,ajax請求被 hook 了,有些複雜,最後打算使用 puppeteer 來爬取數據。 Puppeteer 是谷歌團隊在維護的一個項目,初衷主要是用來做網頁的自動化測試, Google ...
  • 用HBase shell進行表操作 1. 創建student表,表結構包含info和course列族,顯示表結構。 create ‘student’,‘info’,‘course’ desc ‘student’ 2. 修改表結構,course列族返回最大版本數為3,顯示表結構。 alter ‘stu ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...