精华内容
下载资源
问答
  • 2021-04-02 14:28:10

    1、备份语句(数据库导出)

    exp username/password@ip:port/servername file="C:\Users\Administrator\Desktop\kpms.bak" full=y ignore=y;

    2、导入语句(数据库还原)

    ①全部导入:imp 用户名/密码@数据库实例名 full=y file=C:\Users\Administrator\Desktop\kpms.bak ignore=y;

    ②单表导入:imp  username/password@ip:port/servername file="C:\kpms.dmp" tables=(emp) ignore=y;

    ③只导入表结构:imp username/password@ip:port/servername file="C:\kpms.dmp" fromuser=from_username touser=to_username rows=n;

    ④只导入数据:imp username/password@ip:port/servername file="C:\kpms.dmp" fromuser=c##from_username touser=to_username statistics=none  ignore=y;

    ⑤更改表空间和用户导入:impdp  username/password@ip:port/servername directory=DATA_DIR dumpfile=example.dmp REMAP_SCHEMA=olduser:newuser remap_tablespace=oldtablespace:newtablespace,EXAMPLE_TEMP:newtablespace_temp
     

    更多相关内容
  • sqlserver批量导出存储过程 在查询分析器中,选中数据库——》右键“任务”——》在弹出菜单中选择“生成脚本” ——》“下一步”——》选择你要存储过程所在数据库——》 “下一步”——》勾选“存储过程”,并下...
  • 导出一个数据库所有存储过程 mysqldump -u name -p -ntd -R database > /home/areskris/prcedure.sql 5.导入数据库 常用source 命令 进入mysql数据库控制台, 如mysql -u root -p mysql>use 数据库 然后使用source...

    版本一:

    导出(只导数据结构)

    [areskris@AresKris-Acer ~]$ mysqldump -u root -p -d --add-drop-table 数据库名字 > 导出的文件名

    导出(包括数据)

    [areskris@AresKris-Acer ~]$ mysqldump -u root -p --add-drop-table 数据库名字 > 导出的文件名

    全数据库

    [areskris@AresKris-Acer ~]$ mysqldump -u root -p --all-database > backup.sql

    导入:

    [areskris@AresKris-Acer ~]$ source /home/areskris/mysql-study/InsertTest.sql   (某些GUI工具中,需要备份的文件版本要一致)

    [areskris@AresKris-Acer ~]$ mysql -uroot -proot test < /home/areskris/Mysql-study/insertTest.sql

    版本二:

    1.导出整个数据库

    mysqldump -u 用户名 -p 数据库名 > 导出的文件名

    mysqldump -u name -pwordpass databasename > /home/areskris/database.sql

    2.导出一个表

    mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

    mysqldump -u name -p wordpass tablename > /home/areskris/table.sql

    3.导出一个数据库结构

    mysqldump -u name -p -d --add-drop-table database > /home/areskris/db_desc.sql

    -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

    4.导出一个数据库所有存储过程

    mysqldump -u name -p -ntd -R database > /home/areskris/prcedure.sql

    5.导入数据库

    常用source 命令

    进入mysql数据库控制台,

    如mysql -u root -p

    mysql>use 数据库

    然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

    mysql>source /home/areskris/db_desc.sql

    展开全文
  • 修改隔离级别修改全局的set global transaction isolation level read committed;或者:set @@tx_isolation = "asasasasas-read";...@@系统内置变量@表示用户自定义的变量存储过程什么是存储过程是任意的...

    修改隔离级别

    修改全局的

    set global transaction isolation level read committed;

    或者:

    set @@tx_isolation = "asasasasas-read";

    修改局部

    set session transaction isolation level read committed;

    @@系统内置变量

    @表示用户自定义的变量

    存储过程

    什么是存储过程

    是任意的sql语句的组合,被放到某一个存储过程中,类似于一个函数,有一个函数名/参数/还有函数体.

    用来干什么

    其中可以包含任何的sql语句,逻辑处理,事务处理,所有的我们学过的sql语句都可以放到里面

    三种数据处理方式

    应用程序只关注业务逻辑,所有与数据相关的逻辑封装到mysql中

    优点:应用程序要处理的事情变少了,可以减少网络传输

    应用程序既要处理业务逻辑,还要编写sql语句

    优点:降低了沟通成本,人力成本

    缺点: 网络传输增加,sql语句编写非常复杂

    通过ORM框架, 使用对象关系映射,自动生成sql语句并执行

    优点:不需要在编写sql语句,提升了开发效率

    缺点:不够灵活,应用程序开发者和数据库完全隔离,可能导致仅关注上层开发,而不清楚底层原理

    # 语法

    create procedure p_name(p_type p_name p_date_type)

    begin

    sql......

    end

    # p_type 参数的类型 in 输入 out 输出必须是一个变量,不能是值 inout 即可输出也可输入

    # p_name 参数的名字

    # p_data_type 参数的数据类型 如 int float

    案例

    delimiter |

    create procedure a1(in a int, in b int, out c int)

    begin

    set c = a + b;

    end |

    delimiter ;

    # 调用

    set @res =0;

    call a1(1,1,@res);

    select * from @res;

    # 删除

    drop procedure 名称;

    # 查看

    show create procedure 名称

    # 查看全部 例如 db库下的所有

    select name from mysql.proc where db = 库名 and type = "PROCEDURE";

    delimiter |

    create procedure transfer2(in aid int,in bid int,in m float,out res int)

    begin

    declare exit handler for sqlexception

    begin

    # 异常处理代码

    set res = 99;

    rollback;

    end;

    start transaction;

    update account set money = money - m where id = aid;

    update account set money = moneys + m where id = bid;

    commit;

    set res = 1;

    end|

    delimiter ;

    备份与恢复

    # 备份

    mysqldump.exe

    mysqldump -u用户名 -p密码 数据库 表名1 表名2 .... > 文件路径....

    # 注意 第一个表示数据库 后面全都是表名

    mysqldump -uroot -p day41 student >

    #备份多个数据库

    mysqldump -uroot -p111 --databases day41 day40 > x3x.sql

    #指定 --databases 后导出的文件包含 创建库的语句 而上面的方式不包含

    #备份所有数据

    mysqldump -uroot -p111 --all-databases > all.sql

    #自动备份

    linux crontab 指令可以定时执行某一个指令

    # 恢复数据:

    没有登录mysql

    mysql < 文件的路径

    已经登录了MySQL

    source 文件路径

    注意: 如果导出的sql中没有包含选择数据库的语句 需要手动加上

    展开全文
  • 还是先上代码吧 ,可以先看 SQL语句去掉重复记录,获取重复记录 代码如下: ALTER procedure [dbo].[PROC_ITEMMASTER_GETUNIQUE] @PAGEINDEX INT,@uid int,@itemnumber varchar(50) AS begin tran –开始事务 drop ...
  • 存储过程过程,可以简单理解为是一个函数。 – 函数和过程的区别:函数总是向调用者返回数据,而过程没有数据返回。 – Oracle 可以将 PL/SQL 代码存储在数据库中,然后可以提供给其他地方来运行它。 – ...

    – 存储过程

    – 过程,可以简单理解为是一个函数。

    – 函数和过程的区别:函数总是向调用者返回数据,而过程没有数据返回。

    – Oracle 可以将 PL/SQL 代码存储在数据库中,然后可以提供给其他地方来运行它。
    – 这个动作就叫存储过程,也可以理解为一个创建一个函数给其他人用。

    – 语法格式
    procedure 名字(参数)
    is
    声明局部变量;
    begin
    语句
    end;

    – 也可以使用图形界面方式创建:文件 → 新建 → 程序窗口 → procedure

    – 往 tb_stuu 表中插入一条数据

    create procedure hello
    is
    begin
    insert into tb_stuu(id, name)
    values (5, ‘菜花’);
    commit; – 提交数据
    end;

    – 使用
    begin
    hello();
    end;

    select * from tb_stuu;

    – 带参数的
    create procedure hello2(vid tb_stuu.id%type, vname tb_stuu.name%type)
    is
    begin
    insert into tb_stuu(id, name)
    values (vid, vname);
    commit; – 提交数据
    end;

    – 使用
    begin
    hello2(6, ‘茉莉花’);
    end;

    – 让 id 自动增长,使用序列
    begin
    hello2(stu_seq.nextval, ‘小百花’);
    end;

    – 备份:防止数据丢失
    – 每天,我们在 24 点处理的最后一条数据,要备份记录下来。

    – 如果可以使用代码来实现的东西,都可以不再考虑 SQL 语句。

    – 存储过程(备份)

    – 第二天把第一天做的事重复做一遍
    – 如果你觉得难,其实就是练得少

    – 银行
    create table tb_bank (
    id int primary key,
    account varchar(20),
    amount number,
    currentdate date
    );

    – 创建序列
    create sequence bank_seq;

    – 插入数据
    insert into tb_bank values(bank_seq.nextval, ‘001’, 500, sysdate);
    insert into tb_bank values(bank_seq.nextval, ‘002’, 2500, sysdate);
    insert into tb_bank values(bank_seq.nextval, ‘003’, 5000, sysdate);
    insert into tb_bank values(bank_seq.nextval, ‘003’, 800, sysdate);

    select * from tb_bank;

    – 备份表(如果是手动来写)
    create table tb_backup
    as
    select * from tb_bank
    where id = 999;

    – 获取最后(最大的)id 值
    create table tb_maxid (
    maxid int
    );
    – 不能让 tb_maxid 表为空,需要给一个初始值
    insert into tb_maxid values(0);

    – 调用备份的存储过程
    – 1)查询前一天所存的最大值。
    – 2)调用备份存储过程

    create procedure backupmsg
    is
    vmaxid tb_maxid.maxid%type;
    begin
    – 1)查询前一天所存的最大值。
    select maxid into vmaxid from tb_maxid;
    – 2)调用一个用于备份的存储过程
    backupinfo(vmaxid);
    end;

    – 100 昨天

    – 101~202 今天

    – 创建 backupinfo() 存储过程
    create procedure backupinfo(vmaxid tb_maxid.maxid%type)
    is
    – 通过游标来获取前一天最大的 id 值
    cursor cbank is select * from tb_bank where id > vmaxid;
    – 定义一个变量,用于记录数据条数的分段信息
    vindex int := 0;
    – 定义一个变量,用于记录最大的 maxid 值
    vcurrentid int;
    begin
    for rbank in cbank
    loop
    – 先将每一条数据插入到备份表
    insert into tb_backup(id, account, amount, currentdate)
    values (rbank.id, rbank.account, rbank.amount, rbank.currentdate);
    – 因为银行的客户太多了,不能让数据一直停留在内存中
    – 比如可以在某个时间间隔或者达到某个指定的范围
    – 就提交一次数据,我们这里假设满 1000 条则提交一次。
    vindex := vindex + 1;

      if(vindex = 1000) then
        commit;
      -- 但一轮数据提交后,则归零,重新再来。
        vindex := 0;
      end if;
    end loop;
    
    -- 查询最大的 maxid 
    select max(id) into vcurrentid from tb_bank;
    
    -- 如果已经获取到最大的 maxid 值,则让tb_maxid 中曾经保存的数据更新一下
    -- 更新之后,就是最大值
    update tb_maxid set maxid = vcurrentid;
    

    end;

    – 调用 备份的 存储过程
    begin
    backupmsg();
    end;

    select * from tb_backup;

    展开全文
  • mysql 备份语句

    2021-01-18 18:43:04
    mysqldump -udb_user -p dbname -R | dbname_bak.sql 或 mysqldump -udb_user -p dbname -R | gzip > dbname_bak.sql.gz 备份存储过程过程中如果出现错误: mysqldump: db_user has insufficent privileges to SHOW ...
  • 创建存储过程 CREATE PROCEDURE `backup_table`( IN tableName CHAR ( 100 ) ) BEGIN SET @backupTable = CONCAT( tableName, '_bak_',DATE_FORMAT(NOW(), '%Y%m%d%k%i%s') ); SET @stmt = CONCAT( "create ...
  • Oracle中备份表的简单sql命令语句

    千次阅读 2021-05-02 06:09:51
    Oracle中备份表的简单sql命令语句复制代码 代码如下:create table bmpforest.E_PKG_ATPCFG_BAC as select * from bmpforest.e_pkg_atpcfg where 1=2insert into E_PKG_ATPCFG_BAC select * from E_PKG_ATPCFG;...
  • 文章资料来源:http://www.cnblogs.com/kissdodog/p/4174421.htmlhttp://www.cnblogs.com/yunf/archive/2011/04/12/2013448.html1、备份一个数据库mysqldump基本语法:mysqldump -u username -p dbname table1 table...
  • 在转储的数据库中转储存储程序(函数和程序)。使用---routines产生的输出包含CREATE PROCEDURE和CREATE FUNCTION语句以重新创建子程序。但是,这些语句不包括属性,例如子程序定义者或创建和修改时间戳。这说明当重载...
  • SqlServer 备份数据库语句

    千次阅读 2020-05-26 14:55:39
    SqlServer 备份数据库语句 DECLARE @filename VARCHAR(255); --文件名 DECLARE @date DATETIME; --日期 DECLARE @path VARCHAR(255); --文件存放路径 SELECT @date = GETDATE(); --获取当前时间 –根据当前时间自动...
  • 第一:导出数据建表语句存储过程,视图等 打开plsql,如图,点击工具————导出用户对象  点击导出用户对象。如图所示:  如图勾选即可。可以选择你要导出的对象。也可以不选中,这样将会导出所有...
  • 有时候测试程序,需要备份表,但只是要备份数据库中的某些表,每个表都要点击一下复制是比较麻烦的,所以写了这样一个复制表的存储过程。 CREATE DEFINER=`root`@`%` PROCEDURE `copyTable`() BEGIN -- 先创建...
  • ,在sql server存储过程中进行日期计算,按日期建表效率最高,下面就公司项目的部分动态存储过程粘贴出来
  • 实验要求: (1)在food表上创建名为Pfood_price_count的存储过程,该存储过程Pfood_price_...(2)使用call语句来调用存储过程。查询价格在2至18之间的食品种数。 (3)使用drop语句删除存储过程Pfood_price_count。
  • 附带存储过程的MySQL数据备份与还原命令,同时也具有远程备份语句。数据库的一些管理工具自带有备份和还原的工具,但是还原过程中因为各方面的因素会报错或者还原不成功的时候。例如dodo常用的数据库管理工具是...
  • 定时导出oracle指定用户下指定表的所有数据及格式生成CSV文件,通过存储过程; 1.使用特定用户或者system登陆到oracle执行"存储过程.txt"里面的脚本生成对应的存储过程; (说明:存储过程.txt脚本说明,查询指定用户下...
  • oracle中利用存储过程备份所有表

    千次阅读 2018-05-31 20:38:05
    当没有expdp的权限时,通过存储过程复制表空间的所有表作为备份: declare command varchar2(1000); begin for cc in (select table_name from user_tables where tablespace_name='USERS' AND table_name like '...
  • 使用存储过程,在修改前对表进行备份 java 开发中 肯定会遇到大批量操作修改的情况,这时候使用动态表名就是最好的解决方式,但是有个问题,使用$的话 会造成sql注入 ,这样不仅想要的没达到,反而出现很多问题。这...
  • 存储过程备份和还原sqlserver

    千次阅读 2016-08-02 18:55:55
    数据库列表:帐套数据库与系统数据库列表。...首先在master数据库建立3个存储过程及一个备份历史表: 1. p_BackupDB 2. p_RestoreDB 3. p_CreateJob 4. sys_BackupHistory --备份历史表 (脚本在下面找)
  • 一次用 Sql语句完成SqlServer数据库备份还原的历程
  • postgresql数据库、表备份语句

    万次阅读 2013-12-10 13:46:06
    执行pg_dump备份命令时若无此格式参数声明,pg_restore 恢复时可能出现错误提示“pg_restore: [archiver] input file does not appear to be a valid archive”。 C:\Users\cennavi-101>D:/software/...
  • 在数据库编程过程中经常会用到存储过程 , 相比 SQL 语句 , 存储过程更方便 , 快速 , 安全 ; 先将存储过程的相关介绍和使用方法总结如下 ; 1. 存储过程的概念 存储过程 (Stored Procedure) 是...
  • 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。优点存储过程...
  • 一、创建存储过程 Procedure,用于执行备份重要表及数据相关命令 CREATE OR REPLACE PROCEDURE Pro_Back_TableName IS /* 存储过程描述:该存储过程用于备份表及数据。 */ BEGIN -- 执行命令:删除原备份表 ...
  • MySql数据库存储过程和函数 前言 对于MySql数据库,难道只能遇到一个数据库的需求,然后就写一大...存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合。 存储过程和函数的区别在于函数必须有返回值,
  • 存储过程和函数是在数据库中定义一些 SQL 语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的 SQL 语句存储过程和函数可以避免开发人员重复的编写相同的 SQL 语句。而且,存储过程和函数是在 MySQL ...
  • 在目前的工作中需要解决复制整个SqlServer数据库的问题,复制的内容包括数据库大纲、数据库中的存储过程、函数、表结构、主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样。经过一段时间的摸索...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 140,689
精华内容 56,275
关键字:

存储过程备份语句