PostgreSQL Table ‚xxxi‘ does not exist
- dj.kure
- Člen | 70
Ahoj,
trošku se tu mořím s projektem u kterého jsem byl donucen využít
namísto MySQL databázi PgSQL.
Příklad modelu pro výpis zákazníků:
public function __construct(Nette\Database\Context $database)
{
$this->database = $database;
}
public function vypisZakazniku()
{
//$seznam = $this->database->query("SELECT * FROM admina.default.zakaznici ORDER BY id")->fetchAll();
$seznam = $this->database->table('zakaznici')->fetchAll();
return $seznam;
}
Když se podíváte na zakomentovaný řádek s „query“, tak ten funguje, správně vrátí obsah databáze, ale případ s využitím „table(‚zakaznici‘)“ nikoliv. Proč? Samozřejmě jsem zkoušel všechny možné kombinace názvů tabulky, jako „admina.default.zakaznici, default.zakaznici, …“.
Jen doplním, že „admina“ je databáze, „default“ je schéma a „zakaznici“ je tabulka.
Netušíte, co dělám špatně? :-( S MySQL jsem nikdy problém neměl.
Děkuji za rady.
- zdick
- Člen | 4
Přidávám rozšíření problému –
Table 'xxxi' does not exist
nastává pokud je tabulka se stejným
názvem ve dvou schématech, která mám zařazená do
search_path
.
Tozn. tabulka xxxi existuje ve schématu schema1 a schema2. Dotaz
$db->table('schema1.xxxi')->get($id);
pak skončí chybou,
místo aby se načetla data tabulky ze zadaného schématu. Pokud mám
v search_path jenom schema1 nebo schema2, pak vše funguje bez problému.