3

我正在使用 RedBean PHP 进行测试,我非常喜欢它,但是我不知道如何截断表格。我可以获取所有 bean 并删除它们,但这似乎很麻烦。

4

4 回答 4

6

在 RedBean 1.3 中,您可以使用 R::wipe($type) 截断表。

于 2011-02-21T09:45:28.177 回答
2

RedBean 只是一个 ORM 工具 (AFAIK),因此如果您的后端数据库是基于 SQL 的,您可以简单地执行如下 SQL 语句:TRUNCATE TABLE yourTable;

通过 RedBean 直接执行查询

适配器

适配器是与 RedBean 的数据库通信的类。该适配器使执行查询以操作数据库成为可能。要获取此适配器的实例,请使用:

$adapter = $toolbox->getDatabaseAdapter();

来自http://www.redbeanphp.com/downloads/redbean.pdf - 1.3 http://www.redbeanphp.com/manual/manual.pdf - 2.0

于 2010-12-03T17:19:30.890 回答
1

像这样擦除单个表:

R::wipe($table);

像这样擦除 MySQL 模式中的所有表:

function CleanAllTables() {
    $tables = R::getCol(' show tables ');
    foreach ($tables as $table) {
        R::wipe($table);
    }
}

MySQL:

TRUNCATE TABLE <table_name>

使用RedBean 适配器执行

$adapter->exec('TRUNCATE TABLE <table_name>');

这应该做的工作!:)

于 2012-05-23T20:47:31.423 回答
0

老问题,但值得一提的是,RedBean 4.0+(也可能是旧版本)在使用各种 NM 关系映射时会使用外键。

因此,在这种情况下,就我而言,为了解决这个问题,有必要将外键检查设置为 0。

R::exec('SET FOREIGN_KEY_CHECKS = 0;');
R::wipe('tablename');
于 2017-09-07T14:15:51.917 回答