Re: mysqldump und VIEW



Stefan+Usenet@xxxxxxxxxxxxxxxxx (Stefan Froehlich) wrote:

ich habe (mehrere) Datenbanken, denen der gleiche Aufbau zugrunde
liegt. Gelegentlich (z.B. fuer debugging) kopiere ich auch gerne
komplette Datenbestaende von einem Rechner auf einen anderen -
mysqldump tut da gute Dienste.

Nun habe ich im Lauf einer Systemerweiterung VIEWs eingefuehrt, die
es mir erlauben, kleine, gemeinsam genutzte Tabellen um spezifische
Eintraege zu erweitern:

| CREATE OR REPLACE VIEW aTable AS
| (SELECT * FROM common.aTable)
| UNION
| (SELECT * FROM aTable)
| ;

ERROR 1347 (HY000): 'aTable' is not VIEW

Du kannst einen View nicht so nennen, wie eine bereits
existierende Tabelle.

Auch das tut soweit gute Dienste. Allerdings versagt nun mysqldump,
was den oben angesprochenen Einsatzzweck betrifft, denn:

| /*!50001 VIEW `aDatabase`.`aTable` AS (select
| `common`.`aTable`.`aField` AS `aField`,
| `common`.`aTable`.`a2ndField` AS `a2ndField`, [...]
| ) union (select
| `aDatabase`.`aTable`.`aField` AS `aField`,
| `aDatabase`.`aTable`.`a2ndField` AS `a2ndField`, [...]
| ) */;

Dummerweise wird hier auch fuer die "lokale" Datenbank jeweils der
volle Name eingetragen. Damit kann ich den Dump nur noch unter dem
originalen Namen einspielen (oder mit sed nachbearbeiten, was aber
bei gaengigen Bezeichnern nicht ganz unriskant ist).

Wenn du in CREATE VIEW einen unqualifizierten Tabellennamen
benutzt, wird er sofort aufgelöst und in der Definition des
VIEW als qualifizierter Name abgelegt. Die Daten stehen also
bereits so in der Datenbank. mysqldump hat damit nichts zu tun.

Kann man dieses Verhalten denn nicht irgendwo abschalten?

Nein. Wäre IMHO auch nicht sinnvoll, wenn Objektreferenzen
erst zur Laufzeit aufgelöst werden würden.


XL
.



Relevant Pages

  • Re: Crystal Reports
    ... Die Berechnung findet dann IN DER VIEW statt: ... dass ich dem Report eine Query mitgeben kann und nicht extra eine View erstellen muss. ... Ein Formelfeld kannst Du danach wie ein Datenbank-Feld einfügen. ... In dem Falle erfolgt die Auswertung via Datenbank und der ...
    (microsoft.public.de.german.entwickler.dotnet.framework)
  • Re: View - keine Spalten in Tabelle
    ... Die Default Datenbank zeigt dieses Verhalten nicht. ... Wenn Du im Query Analyzer eine Abfrage erstellst, siehst Du dann die Spalten? ... Hast Du schon die Berechtigungen des Benutzera auf den Tabellen kontrolliert, mit dem Du die View anlegen willst? ... Microsoft MVP Office Access ...
    (microsoft.public.de.sqlserver)
  • Berechtigungen bei View über zwei Datenbanken
    ... ich habe einen View der eine Tabelle aus einer anderen Datenbank verwendet. ... Das Teil funktioniert als DBO einwandfrei nur wenn ich es als Benutzer im ... Meinung das man beim ausführen eines View nur Rechte auf den View benötigt. ... funktioniert es ohne Berechtigungen auf die dem View zugrundeliegenden ...
    (microsoft.public.de.sqlserver)
  • Re: (Serienbrief)-Formeln in Word: Datum umwandeln?
    ... In dieser Datenbank stehen viele Felder mit dem Typ "Datum". ... muss aus der Monatszahl entweder "Februar" resp. ... Der View benötigt keinen Speicherplatz und aktualisiert natürlich auch immer die Daten. ... In den Serienbrief holst Du die Zahlen aus diesem View ab, der ja genau die gleichen Informationen wie die urspüngliche Tabelle hat, eben nur ein paar Informationen mehr. ...
    (microsoft.public.de.word)
  • Re: T-SQL Befehl an Datenbank
    ... ich habe ein kleines Problem mit dem Update einer Datenbank per VB.NET ... Funktioniert folgendes z.B. im Management ... Studio ist in .Net schon Schluss. ... -- Create View ...
    (microsoft.public.de.german.entwickler.dotnet.vb)