如何解决Yii2将表从一个数据库复制到另一个数据库
在yii2中,我必须将整个表从一个DB复制到另一个DB
为此,我使用了波纹管代码,但出现了穿越错误:
$dbName = "db1";
$table = "demotable";
$liveDbName = "db2";
$command3 = $connection->createCommand('CREATE TABLE `'.$dbName.'.'.$table.'` SELECT * FROM `'.$liveDbName.'.'.$table.'`');
$command3->execute();
但出现类似以下错误:
Database Exception – yii\db\Exception
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db1.db2.demotable' doesnt exist
The SQL being executed was: CREATE TABLE `db1.demotable` SELECT * FROM `db2.demotable`
Error Info: Array
(
[0] => 42S02
[1] => 1146
[2] => Table 'db1.db2.demotable' doesnt exist
)
解决方法
如果要使用表指定数据库,则应该有两个不同的字符串,用点号分隔。`database`.`table`
。
在您的代码中
`'.$dbName.'.'.$table.'`
将返回统一的字符串`db1.demotable`
。因此,SQL试图查找名称为“ db1.demotable”的表。第二个表也有同样的问题。
尝试使用此代码:
$dbName = "db1";
$table = "demotable";
$liveDbName = "db2";
$command3 = $connection->createCommand("CREATE TABLE `$dbName`.`$table` SELECT * FROM `$liveDbName`.`$table`");
$command3->execute();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。