MySQL - insert / update / delete in Aussicht
Ich habe eine website in Englisch und in Französisch.
So, in meiner Datenbank meine Tabellen haben eine Spalte mit dem Namen "name_english" und "name_french" zum Beispiel und einige andere numerische Spalten.
Ich soll in 2 Ansichten, oder so etwas wie dieses, die die Spalte "Namen" und all den anderen Spalten in meiner Tabelle.
In der Ansicht "table_english" wird die Spalte "name_english" als "Namen" und die Ansicht "table_french" wird die Spalte "name_french" als "name".
Dies ist in Ordnung, mit Blick auf wählt, aber ich möchte auch einige inserts/updates/deletes auf Ansichten, aktualisieren Sie die Tabelle.
Beispiel:
table:
id | name_english | name_french | int1 | int2 | int3
table_english (a view):
id | name | int1 | int2 | int3 (name here is name_english)
table_french (a view):
id | name | int1 | int2 | int3 (name here is name_french)
Dann möchte ich dazu einige Anfragen wie diese:
INSERT INTO table_english(id, name, int1, int2, int3) VALUES (1, 'name', 12, 14, 2);
UPDATE table_english set name='new name' WHERE id=1;
Diese werden eingefügt/aktualisiert werden in der Tabelle mit den entsprechenden Feldern.
Damit Am Ende der Inhalt von "Tabelle" werden:
1 | 'new name' | DEFAULT VALUE | 12 | 14 | 2
Wie kann ich das tun?
- Es ist sehr seltsam, dass Sie versuchen, Sie zu internationalisieren Sie Ihre Website auf diese Weise. Möchten Sie vielleicht in Erwägung ziehen, diese Logik in die Anwendung selbst und wechseln zwischen Datenbanken. Wenn es streng Ansicht Verwandte, die Sie in Aussehen sollte gettext. Vielleicht ein paar mehr Informationen, warum Sie gewählt haben, dieser Ansatz könnte hilfreich sein, in immer eine bessere Antwort.
- meine Anwendung dieser Logik. Aber die Benutzer können fügen Sie einige Inhalte, und diese Inhalte können übersetzt werden. Wenn ich 2 Datenbanken, werde ich haben, replizieren Sie alle Operationen auf der Datenbank zu haben, die genau die gleiche Datenbank außer für text-Felder.
- So habe eine Spalte in der Tabelle an, ob es Englisch oder Französisch ist, und die Anwendung kann die Ergebnisse filtern, basierend auf, dass.
- Aber ich habe bereits die website in Englisch, die ich nicht wollen, zu passieren, alle Abfragen in meinem code zu ändern. Ich habe gerade wnated um den Tabellennamen zu ändern, wie kann ich mit anzeigen. Denn ich habe die Tabellennamen in Variablen. Aber wenn es unmöglich ist, mache ich es auf die harte Weise...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer Ansicht kann aktualisiert werden, und einführbar, wenn es folgt bestimmten Richtlinien.
Mehr Informationen hier
Die kurze version ist: Sie kann nicht aktualisieren, eine Ansicht, die jede Art von GROUP BY, DISTINCT oder Aggregate-Funktionen. Es gibt noch weitere Einschränkungen, aber das Handbuch ist Sie die beste Wette für die up-to-date Informationen über die.
The view columns must be simple column references and not derived columns. A derived column is one that is not a simple column reference but is derived from an expression.
Können Sie einfügen/aktualisieren einer Ansicht. Der Zweck einer Ansicht ist die Anzeige der teilweisen oder vollständigen status von einem oder mehr Tabelle. Sie haben, um die Tabelle zu aktualisieren und habe zwei updates und zwei Beilagen... eine, die updates/inserts
name_english
Spalte und eine fürname_french
Spalte.