通過 docker ps -a 查詢當前運行的容器,找到想執行命令的容器名稱。
docker ps -a
若想執行sql文件,則將sql文件放入當前文件夾下后將項目內的 SQL 文件拷貝到 mysql 容器內部的 root下。
sudo docker cp /root/enterprise.sql mysql:/root/
然后進入 mysql 容器內部。
docker exec -it mysql /bin/bash
進入mysql容器內部執行以下命令后回車,輸入數據庫密碼進入 mysql 數據庫
mysql -u root -p
如圖:
切換到對應的數據庫下,例如數據庫 zd,記得后面要加分號
use zd;
現在就可以對此數據庫執行相關命令了,若想執行sql文件,則運行以下命令,_/root/enterprise.sql_為剛剛復制進來的文件路徑,具體路徑請根據個人調整。
source /root/enterprise.sql
如果沒有出現報錯,則此sql文件執行成功!
以下是mysql常用命令:
MySQL清空表數據三種方法
1.1 清空表數據:truncate
sql命令:
#清空多張表、庫中所有表的數據
truncate table table_name1,table_name2,...;#清空單張表的數據
truncate table table_name;
- 注意:
- truncate會刪除表中的所有數據、釋放空間,但是保留表結構
- 只能操作表,不能與where一起使用
- truncate刪除操作立即生效,原數據不放到rollback segment中,不能rollback,操作不觸發trigger
- truncate刪除數據后會釋放表空間、重置Identity(標識列、自增字段),相當于自增列會被置為初始值,又重新從1開始記錄、而非接著原來的id數
- truncate刪除數據后不寫服務器log,整體刪除速度快
1.2 刪除表:drop
sql命令:
drop table table_name;
drop table if exists table_name;
- 注意:
- drop會刪除整個表,包括表結構和數據,釋放空間
- 立即執行,執行速度最快
- 不可回滾
1.3 刪除/清空表數據:delete
-
sql命令
#刪除部分數據
delete from tb_name where clause;#清空表,僅刪除數據、保留表結構,同時也不釋放表空間
delete from tb_name; -
注意:
- 刪除表中數據而不刪除表結構,也不釋放空間
- delete可以刪除一行、多行、乃至整張表
- 每次刪除一行,都在事務日志中為所刪除的每行記錄一項,可回滾
- 如果不加where條件,表示刪除表中所有數據,僅刪除數據、保留表結構,同時也不釋放表空間
MySQL、Mariadb、PostgreSQL刪除表數據、清空表命令 都可用以上三種命令。
使用原則
使用原則總結如下:
- 當你不需要該表時(刪除數據和結構),用drop;
- 當你仍要保留該表、僅刪除所有數據表內容時,用truncate;
- 當你要刪除部分記錄、且希望能回滾的話,用delete;
在沒有備份的情況下,謹慎使用drop、truncate。
在實際應用中,要根據具體需求和場景選擇合適的操作。