mysqlimport能导入表结构,存储过程,存储方法吗?

解决方案 »

  1.   

    mysqlimport是一个数据导入程序,其实其就是LOAD DATA INFILEQL语句的一个命令行接口。
    所以,不能像你上面说的"导入表结构,存储过程"。
      

  2.   

    mysql有没有自带的命令可以执行,导入数据结构?
      

  3.   

    假如备份的表结构脚本保存为“test.sql”,则可以这样导入表结构:d:\mysql -uroot -p db_name < "d:\\test.sql"或:mysql> source d:\test.sql
      

  4.   

    ERROR 1064 (42000) at line 4: You have an error in your SQL syntax; check the ma
    nual that corresponds to your MySQL server version for the right syntax to use n
    ear '' at line 1
      

  5.   

    你的版本是多少? 操作系统是什么?mysql> source h:\cc.sql
    +---------------------+
    | now()               |
    +---------------------+
    | 2009-08-12 12:12:33 |
    +---------------------+
    1 row in set (0.06 sec)mysql> select version();
    +----------------------+
    | version()            |
    +----------------------+
    | 5.1.33-community-log |
    +----------------------+
    1 row in set (0.06 sec)mysql>
      

  6.   

    mysql> select version();
    +------------------+
    | version()        |
    +------------------+
    | 5.1.30-community |
    +------------------+
    1 row in set (0.00 sec)
      

  7.   

    mysql  Ver 14.14 Distrib 5.1.30, for Win32 (ia32)
    想用这个命令导入存储过程和函数
      

  8.   

    mysql> source d:\test.sql你的这个命令是在什么中运行的?注意只需要输入执行黑体部分。
      

  9.   

    检查一下你的这个test.sql 中的第四行,是不是有语法错误?
      

  10.   

    DELIMITER $$DROP FUNCTION IF EXISTS `func_get_split_string` $$
    CREATE FUNCTION `func_get_split_string`(f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) CHARSET utf8
    BEGIN  declare result varchar(255) default ''; 
      set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1));    return result; 
    END $$DELIMITER ;
    DELIMITER $$
    CREATE FUNCTION `func_get_split_string_total`(f_string varchar(1000),f_delimiter varchar(5)) RETURNS int(11)
    BEGIN return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));END ;;
    DELIMITER ;
      

  11.   

    你的这部分好象不对,你的这个test.sql 是从哪里来的?DELIMITER $$
    CREATE FUNCTION `func_get_split_string_total`(f_string varchar(1000),f_delimiter varchar(5)) RETURNS int(11)
    BEGIN return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));END ;;
    DELIMITER ;
      

  12.   

    这个部分是用mysqldump备份的,mysql -h localhost -u root -p test<test.sql,这个语句如果没有存储过程就可以正确执行,有存储过程就会出错
      

  13.   

    mysql -h localhost -u root -p test <test.sql,这个语句如果没有存储过程就可以正确执行,有存储过程就会出错--------------------------
    应该不会啊用mysqldump出来
    用mysql导进去你把你的操作语句列出来看看
      

  14.   

    下面这句的语法上就根本不对。所以要问这段语句是怎么得来的?DELIMITER $$
    CREATE FUNCTION `func_get_split_string_total`(f_string varchar(1000),f_delimiter varchar(5)) RETURNS int(11)
    BEGIN return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));END ;;
    DELIMITER ;
      

  15.   

    DELIMITER ;;
    CREATE FUNCTION `func_get_split_string`(f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) CHARSET utf8
    BEGIN  declare result varchar(255) default '';  set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1));  return result;END ;;
    DELIMITER ;DELIMITER $$DROP FUNCTION IF EXISTS `func_get_split_string_total` $$
    CREATE FUNCTION `func_get_split_string_total`(f_string varchar(1000),f_delimiter varchar(5)) RETURNS int(11)
    BEGIN return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));
    END $$DELIMITER ;
      

  16.   

    上面的代码在mysql-gui-tools可以正确执行
      

  17.   

    是19楼的,前面贴错了
    mysql -h localhost -u root-p test<"d:\test.sql"