MariaDB中的视图定义不是用mysqldump创建的
问题描述:
我在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;
并且在这里没有视图定义。我拥有所有的优惠权限
答
通常,在mysqldump备份脚本中,视图首先被创建为表格,然后在创建每个视图时被放置在脚本的底部。
有时在这个过程中有一个错误,因为当一个视图被创建时有一个用户被用作DEFINER。该语句可能失败,因为该用户可能不存在于数据库中。
请验证最后是否存在视图放置/创建脚本,写入您正在收到的错误(如果您正在获取)并使用-v选项运行导入以进行更多日志记录。
是的,这是正确的我创建de转储文件并压缩它,然后通过phpmysadmin在其他电脑加载为导入文件,并成功运行 –
我很高兴我可以帮助我的朋友:) –