新聞中心
在數(shù)據(jù)庫管理中,每個數(shù)據(jù)表都有一個唯一的標識符,也就是主鍵。主鍵可以讓我們方便快捷地找到、定位和更新某個數(shù)據(jù)。而主鍵的首個ID則是整個數(shù)據(jù)表的標識符,是最重要的標識符之一。如果我們希望在某種情況下修改首個ID,卻不知道如何操作,那么就要看看下面的教程了。

10年積累的成都網(wǎng)站設計、網(wǎng)站建設經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有黑龍江免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
之一步:備份數(shù)據(jù)
在進行任何操作之前,請務必備份您的數(shù)據(jù)庫,以避免出現(xiàn)意外情況時造成數(shù)據(jù)的丟失。備份的方法也非常簡單,在數(shù)據(jù)庫管理軟件中選擇所需的數(shù)據(jù)庫,在操作菜單中選擇“備份”,設置好備份的位置,然后點擊備份按鈕即可。備份的過程可能需要一定的時間,具體時間的長短取決于數(shù)據(jù)庫的大小。
第二步:選擇所需的數(shù)據(jù)庫
在您的數(shù)據(jù)庫管理軟件中,選擇您需要進行操作的數(shù)據(jù)庫。如果您打算修改的是主鍵,那么就需要找到含有該主鍵的表格。選擇該表格并打開它,可以看到這個表格中所有的數(shù)據(jù)。
第三步:修改首個ID的值
在您找到包含主鍵的表格后,接下來的步驟就是要修改首個ID的值了。在該表格中找到主鍵所在的行,然后找到該行的首個ID。如果您想要將它修改為其他的數(shù)值,只需依次點擊該單元格。在點擊單元格之后,您可以輸入新的數(shù)值,然后按下“回車”鍵即可。
如果您需要為這個數(shù)值加上一個固定值,比如添加10,那么可以使用一個簡單的數(shù)學模板。例如,如果您的首個ID值是100,那么輸入“=100+10”即可將它加上10。同樣,如果您需要對數(shù)值進行減法、乘法或者其他的運算,都可以使用類似的數(shù)學模板。
第四步:保存您的修改
當您按下了“回車”鍵之后,您所做的修改會被記錄。但是,它并沒有被保存到數(shù)據(jù)庫中。如果您希望將所做的修改永久地保存下來,那么必須將這些修改提交到數(shù)據(jù)庫中。在您完成所需要的修改之后,保存您的修改,以便將來方便您查看、修改或者刪除。
:
如果您需要在數(shù)據(jù)庫中修改首個ID,那么只需要按照上述步驟,輕松地完成所需的操作即可。此外,如果您需要修改其他的數(shù)據(jù),比如某個字段、某一列或者某一行,也可以按照類似的方法進行操作。盡管數(shù)據(jù)庫管理有時候可能非常復雜,但是只要您按照正確的步驟進行操作,就能節(jié)省時間和精力,獲得更好的數(shù)據(jù)庫管理體驗。
相關(guān)問題拓展閱讀:
- 數(shù)據(jù)庫的userid和pwd如何修改?
- 如何使用命令修改MySQL數(shù)據(jù)庫名?
- 如何完整的修改一個數(shù)據(jù)庫的名稱
數(shù)據(jù)庫的userid和pwd如何修改?
在”SQL SERVER企業(yè)管理器”下的”安全性”中”登陸”,
可以添加用戶,刪除用戶,修改密碼。
例如把sa的密碼改為空值:
雙擊sa用戶--》清空密碼--》點擊確認--》系統(tǒng)彈出確認密碼--》什么都不用填寫,直接點擊 確認,密碼就設置為空密碼
如何使用命令修改MySQL數(shù)據(jù)庫名?
MySQL 的 Binlog 記錄著 MySQL 數(shù)據(jù)庫的所有變更信息,了解 Binlog 的結(jié)構(gòu)可以幫助我們解析Binlog,甚至對 Binlog 進行一些修改,或者說是“篡改”,例如實現(xiàn)類似于 Oracle 的 flashback 的功能,恢復誤刪除的記錄,把 update 的記錄再還原回去等。本文將帶您探討一下這些神奇功能的實現(xiàn),您會發(fā)現(xiàn)比您想象地要簡單得多。本文指的 Binlog 是 ROW 模式的 Binlog,這也是 MySQL 8 里的默認模式,STATEMENT 模式因為使用中有很多限制,現(xiàn)在用得越來越少了。
Binlog 由事件(event)組成,請注意是事件(event)不是事務(transaction),一個事務可以包含多個事件。事件描述對數(shù)據(jù)庫的修改內(nèi)容。
現(xiàn)在我們已經(jīng)了解了 Binlog 的結(jié)構(gòu),我們可以試著修改 Binlog 里的數(shù)據(jù)。例如前面舉例的 Binlog 刪除了一條記錄,我們可以試著把這條記錄恢復,Binlog 里面有個刪除行(DELETE_ROWS_EVENT)的事件,就是這個事件刪除了記錄,這個事件和寫行(WRITE_ROWS_EVENT)的事件的數(shù)據(jù)結(jié)構(gòu)是完全一樣的,只是刪除行事件的類型是 32,寫行事件的類型是 30,我們把對應的 Binlog 位置的 32 改成 30 即可把已經(jīng)刪除的記錄再插入回去。從前面的 “show binlog events” 里面可看到這個 DELETE_ROWS_EVENT 是從位置 378 開始的,這里的位置就是 Binlog 文件的實際位置(以字節(jié)為單位)。從事件(event)的結(jié)構(gòu)里面可以看到 type_code 是在 event 的第 5 個字節(jié),我們寫個 Python 小程序把把第383(378+5=383)字節(jié)改成 30 即可。當然您也可以用二進制編輯工具來改。
找出 Binlog 中的大事務
由于 ROW 模式的 Binlog 是每一個變更都記錄一條日志,因此一個簡單的 SQL,在 Binlog 里可能會產(chǎn)生一個巨無霸的事務,例如一個不帶 where 的 update 或 delete 語句,修改了全表里面的所有記錄,每條記錄都在 Binlog 里面記錄一次,結(jié)果是一個巨大的事務記錄。這樣的大事務經(jīng)常是產(chǎn)生麻煩的根源。我的一個客戶有一次向我抱怨,一個 Binlog 前滾,滾了兩天也沒有動靜,我把那個 Binlog 解析了一下,發(fā)現(xiàn)里面有個事務產(chǎn)生了 1.4G 的記錄,修改了 66 萬條記錄!下面是一個簡單的找出 Binlog 中大事務的 Python 小程序,我們知道用 mysqlbinlog 解析的 Binlog,每個事務都是以 BEGIN 開頭,以 COMMIT 結(jié)束。我們找出 BENGIN 前面的 “# at” 的位置,檢查 COMMIT 后面的 “# at” 位置,這兩個位置相減即可計算出這個事務的大小,下面是這個 Python 程序的例子。
切割 Binlog 中的大事務
對于大的事務,MySQL 會把它分解成多個事件(注意一個是事務 TRANSACTION,另一個是事件 EVENT),事件的大小由參數(shù) binlog-row-event-max-size 決定,這個參數(shù)默認是 8K。因此我們可以把若干個事件切割成一個單獨的略小的事務
ROW 模式下,即使我們只更新了一條記錄的其中某個字段,也會記錄每個字段變更前后的值,這個行為是 binlog_row_image 參數(shù)控制的,這個參數(shù)有 3 個值,默認為 FULL,也就是記錄列的所有修改,即使字段沒有發(fā)生變更也會記錄。這樣我們就可以實現(xiàn)類似 Oracle 的 flashback 的功能,我個人估計 MySQL 未來的版本從可能會基于 Binlog 推出這樣的功能。
了解了 Binlog 的結(jié)構(gòu),再加上 Python 這把瑞士軍刀,我們還可以實現(xiàn)很多功能,例如我們可以統(tǒng)計哪個表被修改地最多?我們還可以把 Binlog 切割成一段一段的,然后再重組,可以靈活地進行 MySQL 數(shù)據(jù)庫的修改和遷移等工作。
今天接到宇航同學的問題,他們老大要求更改數(shù)據(jù)庫名稱,居然是為了數(shù)據(jù)庫安全???我靠!真強的想法啊。因為他們的數(shù)據(jù)庫是采用的INNODB存儲引擎,不能直接修改數(shù)據(jù)庫的名稱,所以現(xiàn)轉(zhuǎn)換成MyISAM存儲引擎在修改表名在轉(zhuǎn)換成INNODB存儲引擎就好了,雖然過程比較麻煩,不如修改表名那樣容易,但是能修改就偷笑吧。我個人認為數(shù)據(jù)庫的名稱屬于數(shù)據(jù)庫設計范疇,應該遵守設計規(guī)范,不能隨便的修改名稱。之一次聽說為了安全修改數(shù)據(jù)庫名,實在是不可取。修改名稱詳細步驟(因為不僅僅是上面那幾步)mysql> use dinghao;mysql> select * from t1;+——+———–+| id | name |+——+———–+| 1 | 劉德華 | +——+———–+1 row in set (0.00 sec)mysql> show create table t1;+——-+————————————————————————————————————————-+| Table | Create Table |+——-+————————————————————————————————————————-+| t1 | CREATE TABLE `t1` (`id` int(11) DEFAULT NULL,`name` varchar(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +——-+————————————————————————————————————————-+1 row in set (0.00 sec)mysql> flush tables;Query OK, 0 rows affected (0.00 sec)mysql> flush logs;Query OK, 0 rows affected (0.00 sec)mysql> show processlist; #這一步主要查看有沒有其他進程連接,要保證沒有其他程序操作數(shù)據(jù)庫。+—-+——+———–+———+———+——-+——-+——————+| Id | User | Host | db | Command | Time | State | Info |+—-+——+———–+———+———+——-+——-+——————+| 17 | root | localhost | dinghao | Query | 0 | NULL | show processlist | +—-+——+———–+———+———+——-+——-+——————+1 rows in set (0.00 sec)mysql> alter table t1 engine=MyISAM;Query OK, 1 row affected (0.01 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> exit# mv dinghao aaa;mysql> use aaa;Database changedmysql> alter table t1 engine=INNODB;Query OK, 1 row affected (0.00 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> select * from t1;+——+———–+| id | name |+——+———–+| 1 | 劉德華 | 站長教學網(wǎng) eduyo.com+——+———–+1 row in set (0.00 sec)注意,在改名之前必須現(xiàn)轉(zhuǎn)換存儲引擎,否則會報錯,你想換的這個名稱就換不成了,只能換另外一個名稱了。錯誤的方法就不演示了,光記住好的就行了。
如何完整的修改一個數(shù)據(jù)庫的名稱
/*
該腳本示例如何完整的修改一個數(shù)據(jù)庫的名稱.
數(shù)據(jù)庫為原名稱為DB_BEIJING,需要修改成DB_SHANGHAI
nzperfect 2023.12.19
*/
–判斷是否存在同名的數(shù)據(jù)庫,以防止誤刪除
USE master
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = N’DB_BEIJING’)
BEGIN
RAISERROR(‘請注意:數(shù)據(jù)庫已存在!’,15,1)
RETURN
–DROP DATABASE DB_BEIJING
END
GO
USE master
GO
–創(chuàng)建測試數(shù)庫
CREATE DATABASE
ON PRIMARY
(
NAME = N’DB_BEIJING’,
FILENAME = N’X:\DATA\DB_BEIJING.mdf’ ,
SIZE = 3072KB ,
FILEGROWTH = 1024KB
)
LOG ON
(
NAME = N’DB_BEIJING_log’,
FILENAME = N’W:\Log\DB_BEIJING_log.ldf’ ,
SIZE = 1024KB ,
FILEGROWTH = 1024KB
)
GO
–以下為修改過程
–step 1 : 修改數(shù)據(jù)庫名稱
USE master
GO
ALTER DATABASE DB_BEIJING SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
EXEC master..sp_renamedb ‘DB_BEIJING’,’DB_SHANGHAI’
GO
ALTER DATABASE DB_SHANGHAI SET MULTI_USER
GO
–step 2 : 查看修改名稱后的數(shù)據(jù)庫邏輯名及物理文件名
USE master
GO
SELECT name AS , physical_name AS ,type_desc AS ,
state_desc AS FROM sys.master_files
WHERE database_id = DB_ID(N’DB_SHANGHAI’)
GO
/*
Logical Name DB File Path File Type State
DB_BEIJINGX:\DATA\DB_BEIJING.mdfROWSONLINE
DB_BEIJING_log W:\Log\DB_BEIJING_log.ldf LOGONLINE
*/
–step 3 : 修改數(shù)據(jù)庫邏輯文件名稱
USE master
GO
ALTER DATABASE DB_SHANGHAI SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME=N’DB_BEIJING’, NEWNAME=N’DB_SHANGHAI’)
GO
ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME=N’DB_BEIJING_log’, NEWNAME=N’DB_SHANGHAI_log’)
GO
ALTER DATABASE DB_SHANGHAI SET MULTI_USER
GO
–step 4 : 修改數(shù)據(jù)庫物理文件名稱之前先打開xp_cmdshell支持
USE master
GO
sp_configure ‘show advanced options’,1
GO
RECONFIGURE WITH OVERRIDE
GO
sp_configure ‘xp_cmdshell’, 1
GO
RECONFIGURE WITH OVERRIDE
GO
–step 5 : 重命名數(shù)據(jù)庫物理文件名稱
USE
GO
ALTER DATABASE DB_SHANGHAI SET OFFLINE WITH ROLLBACK IMMEDIATE
GO
EXEC xp_cmdshell ‘RENAME “X:\DATA\DB_BEIJING.mdf”, “DB_SHANGHAI.mdf”‘
GO
EXEC xp_cmdshell ‘RENAME “W:\Log\DB_BEIJING_log.ldf”, “DB_SHANGHAI_log.ldf”‘
GO
–step 6 : 將數(shù)據(jù)庫邏輯名稱指向新的物理文件,并將數(shù)據(jù)庫online
USE
GO
ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME =DB_SHANGHAI, FILENAME = ‘X:\DATA\DB_SHANGHAI.mdf’)
GO
ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME =DB_SHANGHAI_log, FILENAME = ‘W:\LOG\DB_SHANGHAI_log.ldf’)
GO
ALTER DATABASE DB_SHANGHAI SET ONLINE
–step 7 : 查看全部修改完成后的數(shù)據(jù)庫情況
USE master
GO
SELECT name AS , physical_name AS ,type_desc AS ,
state_desc AS FROM sys.master_files
WHERE database_id = DB_ID(N’DB_SHANGHAI’)
GO
/*
Logical Name DB File Path File Type State
DB_SHANGHAIX:\DATA\DB_SHANGHAI.mdfROWSONLINE
DB_SHANGHAI_log W:\LOG\DB_SHANGHAI_log.ldf LOGONLINE
*/
–step 8 : 關(guān)閉xp_cmdshell支持
USE master
GO
sp_configure ‘xp_cmdshell’, 0
GO
RECONFIGURE WITH OVERRIDE
GO
sp_configure ‘show advanced options’,0
GO
RECONFIGURE WITH OVERRIDE
如何修改數(shù)據(jù)庫之一個id的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于如何修改數(shù)據(jù)庫之一個id,教你輕松修改數(shù)據(jù)庫的首個ID,數(shù)據(jù)庫的userid和pwd如何修改?,如何使用命令修改MySQL數(shù)據(jù)庫名?,如何完整的修改一個數(shù)據(jù)庫的名稱的信息別忘了在本站進行查找喔。
成都網(wǎng)站推廣找創(chuàng)新互聯(lián),老牌網(wǎng)站營銷公司
成都網(wǎng)站建設公司創(chuàng)新互聯(lián)(www.cdcxhl.com)專注高端網(wǎng)站建設,網(wǎng)頁設計制作,網(wǎng)站維護,網(wǎng)絡營銷,SEO優(yōu)化推廣,快速提升企業(yè)網(wǎng)站排名等一站式服務。IDC基礎服務:云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗、服務器租用、服務器托管提供四川、成都、綿陽、雅安、重慶、貴州、昆明、鄭州、湖北十堰機房互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務。
當前文章:教你輕松修改數(shù)據(jù)庫的首個ID (如何修改數(shù)據(jù)庫之一個id)
轉(zhuǎn)載源于:http://fisionsoft.com.cn/article/ccsidhp.html


咨詢
建站咨詢
