Ich habe ein kleines Problem, den Tabellennamen dynamisch zu erstellen.MYSQL gespeicherte Prozedur dynamische Tabelle aus dem Datum erstellen
Zum Beispiel Diese Abfrage (SELECT DATE_FORMAT(NOW(),'%Y%m'))
201702
Mein Motiv gibt, ob die Tabelle vorhanden zu überprüfen ist. Wenn es nicht existiert, wird es automatisch erstellt. Jetzt ist hier mein Problem.
messages_`,datereturn
Es scheint, ich bin Fehler immer noch kompilieren. Wie übergeben wir Parameter zum Erstellen der Tabelle?
Wirklich zu schätzen Ihre Hilfe.
Voll Code:
BEGIN
SET datereturn = (SELECT DATE_FORMAT(NOW(),'%Y%m'));
CREATE TABLE IF NOT EXISTS `messages_`,datereturn (
`mid` bigint(17) NOT NULL,
`uid` int(11) NOT NULL,
`csid` int(11) NOT NULL,
`content` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`content_type` tinyint(4) NOT NULL,
`datecreated` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`datecreated1` bigint(13) DEFAULT NULL,
PRIMARY KEY (`mid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
END
EDIT: es ist anders als die Antwort vorgeschlagen. Ich mache die Tabelle dynamisch mit MySQL 5.6. Der oben vorgeschlagene Thread funktioniert nicht für meine Version. Also, ich weiß nicht, warum es möglich ist, zu duplizieren.
Meinen Sie 'CONCAT ("messages_", datereturn)'? –
@ PM77-1, Nun, ich habe versucht, dass ich diesen Fehler bekomme '' 'Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Server-Version entspricht, für die richtige Syntax in der Nähe von 'Datumzurück' ('mid' bigint (17) NOT NULL,' uid' int (11) NOT NULL, 'csid 'in Zeile 4''') – FreedomPride
Mögliches Duplikat von [mysql (5.1)> Tabelle mit Namen aus einer Variablen erstellen] (http://stackoverflow.com/questions/7489142/mysql-5-1-create-table-with-name-from-a-variable) –