我正在尝试使用php中的这行代码在MySQL数据库中创建一个与另一个数据库中的视图同名的视图。
mysql_query('CREATE VIEW `' . $targetDB . '`.`' . $row[0] . '` LIKE `' . $sourceDB . '`.`' . $row[0] . '`') or die(mysql_error());
然而,当我运行我的代码时,我收到此错误
您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便使用“copyinrdb
附近使用的正确语法。abnormal_limit_view
'在第1行
我做错了什么我的完整代码是否有帮助:
<?php
set_time_limit(0);
function duplicateTables($sourceDB=NULL, $targetDB=NULL) {
$link = mysql_connect('my_host', 'my_user', 'my_pass') or die(mysql_error()); // connect to database
$results = mysql_query('SHOW FULL TABLES FROM copyinrdb WHERE TABLE_TYPE= "VIEW"') or die(mysql_error());
while($row = mysql_fetch_row($results)) {
mysql_query('CREATE VIEW `' . $targetDB . '`.`' . $row[0] . '` LIKE `' . $sourceDB . '`.`' . $row[0] . '`') or die(mysql_error());
mysql_query('INSERT INTO `' . $targetDB . '`.`' . $row[0] . '` SELECT * FROM `' . $sourceDB . '`.`' . $row[0] . '`') or die(mysql_error());
}
mysql_free_result($results);
mysql_close($link);
} // end duplicateTables()
duplicateTables('copyinrdb', 'copytest1');
?>
答案 0 :(得分:0)
namespace app {
let app =angular.module('foo',[]);
app.factory(factories);//for registering whatever is there in factories namespace
}
namespace app.factories {
export class fooFactory {
static $inject = ['fooHelperService']
constructor(fooHelperService: services.fooHelperService) {
return {
fooFunc: () => {
return 'hellow world'
}
}
}
}
}
根本不是有效的mysql代码。
不能在那里使用LIKE关键字。
语法是:
CREATE VIEW db1.viewname LIKE db2.viewname
答案 1 :(得分:0)
mysql中的LIKE
语句中没有CREATE VIEW
子句,这就是您收到错误消息的原因。在循环处理中,视图列表通过发出和解析SHOW CREATE VIEW步骤来获取视图的create view语句,或者查询information_schema.views table的view_definition
列并在其前面添加相应的创建视图语法。
如果直接从包含view_definition的information_schema.views查询视图列表而不是使用show full tables命令,它甚至会更快。