在 SQL 中,“数据备份”可以从数据库级别和表级别来理解,不同数据库(MySQL、SQL Server、PostgreSQL、Oracle)写法不一样。下面按常见场景给你总结。
使用 mysqldump(命令行,不是 SQL 语句)
mysqldump -u root -p dbname > dbname.sql
恢复:
mysql -u root -p dbname < dbname.sql
✅ 适合:全库备份
❌ 不能在 SQL 里直接执行
使用 T-SQL 备份
BACKUP DATABASE testdb
TO DISK = 'D:\backup\testdb.bak'
WITH FORMAT;
恢复:
RESTORE DATABASE testdb
FROM DISK = 'D:\backup\testdb.bak';
pg_dump dbname > dbname.sql
恢复:
psql dbname < dbname.sql
如果你只是想把一张表的数据复制一份,可以用 SQL:
CREATE TABLE backup_orders AS
SELECT * FROM orders;
CREATE TABLE backup_orders LIKE orders;
CREATE TABLE orders_20260121 AS
SELECT * FROM orders;
CREATE TABLE orders_backup AS
SELECT * FROM orders
WHERE update_time >= '2026-01-01';
| 需求 | 推荐方式 |
|---|---|
| 全库备份 | mysqldump / BACKUP DATABASE |
| 表备份 | CREATE TABLE AS SELECT |
| 防误删 | 备份表 / 定时任务 |
| 生产环境 | 物理备份 + 日志 |
如果你告诉我:
我可以直接给你可执行的方案或脚本。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。