2017-06-19 12 views
-2

Ich versuche, eine Tabelle in einer MySQL-Datenbank zu umbenennen, von PHP, aber dieser Code funktioniert nicht:RENAME TABLE/ALTER TABLE nicht funktioniert

$sql = "RENAME TABLE dbname.table TO dbname.tabletmp;"; 
$conn->query($sql); 

Ich habe auch versucht ALTER TABLE zu verwenden oder die '' für die Tabellennamen, aber nichts. Irgendwelche Ideen?

Es scheint, dass in PHP ALTER TABLE kein Befehl ist:/

+0

Erhalten Sie eine Ausnahme oder eine Fehlermeldung? Rename-Tabelle Syntax sieht gut aus. Die Alter-Tabelle kann nicht zum Umbenennen der Tabelle verwendet werden. –

+0

erhalten Sie irgendwelche Fehlermeldungen? –

+0

Diese [Antwort] (https://stackoverflow.com/a/37786534/5513005) können Sie –

Antwort

-1

Versuchen Sie, diese

$sql = "RENAME TABLE `" . $oldname . "` TO `" . $newname . "`" ; 
$conn->query($sql); 
+0

Warum sollte das funktionieren? – axiac

0

Es scheint, dass kein Befehl in PHP ALTER TABLE lautet:/

PHP kümmert sich nicht um SQL. Nicht einmal $conn->query() kümmert sich darum. Sie übergeben ihm eine Zeichenfolge und übergeben sie weiter an den Server.

Sicherstellen, dass der Benutzer, den Sie über die erforderlichen Berechtigungen verwenden, um eine Verbindung eine Tabelle umbenannt. Die documentation of RENAME TABLE sagt:

Wenn Sie RENAME TABLE ausführen, können Sie keine gesperrten Tabellen oder aktive Transaktionen haben kann. Sie müssen auch die ALTER und DROP Privilegien auf dem Originaltisch und die CREATE und INSERT Privilegien auf die neue Tabelle.