2017-07-30 65 views
0

我在MariaDB 10.1.25中有一个db,在这里我有很多表和20个视图。 当我尝试使用mysqldump备份我的数据库时,它对表的工作正常,但在视图定义中,它无法像创建表一样创建create语句。 产生的代码是这样的:MariaDB中的视图定义不是用mysqldump创建的

-- 
-- Temporary table structure for view `qry_clientes` 
-- 

DROP TABLE IF EXISTS `qry_clientes`; 
/*!50001 DROP VIEW IF EXISTS `qry_clientes`*/; 
SET @saved_cs_client  = @@character_set_client; 
SET character_set_client = utf8; 
/*!50001 CREATE TABLE `qry_clientes` (
    `Id` tinyint NOT NULL, 
    `Cliente` tinyint NOT NULL, 
    `Direccion` tinyint NOT NULL, 
    `Ciudad` tinyint NOT NULL, 
    `Fono` tinyint NOT NULL, 
    `Fax` tinyint NOT NULL, 
    `Email` tinyint NOT NULL, 
    `Ruc` tinyint NOT NULL, 
    `tipo` tinyint NOT NULL 
) ENGINE=MyISAM */; 
SET character_set_client = @saved_cs_client; 

并且在这里没有视图定义。我拥有所有的优惠权限

回答

2

通常,在mysqldump备份脚本中,视图首先被创建为表格,然后在创建每个视图时被放置在脚本的底部。

有时在这个过程中有一个错误,因为当一个视图被创建时有一个用户被用作DEFINER。该语句可能失败,因为该用户可能不存在于数据库中。

请验证最后是否存在视图放置/创建脚本,写入您正在收到的错误(如果您正在获取)并使用-v选项运行导入以进行更多日志记录。

+0

是的,这是正确的我创建de转储文件并压缩它,然后通过phpmysadmin在其他电脑加载为导入文件,并成功运行 –

+0

我很高兴我可以帮助我的朋友:) –