[Base 4.4.4.3] Fehler Nr. 1452 beim schreiben in einer Realationstabelle

Hallo,

ich versuche gerade ein Beispiel aus dem Base Handbuch 4.3 ca. ab Seite 38 nachzuvollziehen. Jedoch habe ich dazu nicht die interne Datenbank sondern eine mySQL Datenbank im XXX Format verwendet.

Hier das SQL Statement zur Erzeugung der Datenbank:

--- schnipp ---
-- phpMyAdmin SQL Dump
-- version 4.2.13.3
-- http://www.phpmyadmin.net

Hallo Jens,

-- -- Indizes für die Tabelle `rel_Name_Sportart` -- ALTER TABLE
`rel_Name_Sportart` ADD PRIMARY KEY (`ID_Name`,`ID_Sportart`), ADD
KEY `ID_Sportart` (`ID_Sportart`);

Den 2. Teil dieser Anweisung habe ich weg gelassen. Auch im Handbuch
habe ich da nur den gemeinsamen Primärschlüssel stehen.

Wenn ich nun versuche über Base und die im Handbuch auf Seite 38
beschriebene SQL Anweisung einen Datensatz in die
Relationsdatenbank zu schreiben, bekomme ich immer den Fehlercode
1452 geliefert. Es kann kein neuer Datensatz in der Tabelle
angelegt werden.

Das ist für mich etwas schwieriger zu verstehen: Ich habe hier
verschiedene Handbuchversionen. Zu jeder neuen LO-Version kommt auch
ein neues Handbuch raus. Die aktuelle 4.4-Version hat auf s. 38 ein
Formular mit einem Listenfeld stehen - keine SQL-Anweisung.

Ich habe also lediglich einmal versucht, in die Verbindungstabelle
Werte ein zu geben und das Formular entsprechend nach zu bauen. Das
funktioniert bei mir ohne Probleme.

Gruß

Robert

Hallo Robert,

vielen Dank für Deine schnelle Antwort,

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hallo Jens,

-- -- Indizes für die Tabelle `rel_Name_Sportart` -- ALTER TABLE
`rel_Name_Sportart` ADD PRIMARY KEY (`ID_Name`,`ID_Sportart`), ADD
KEY `ID_Sportart` (`ID_Sportart`);

Den 2. Teil dieser Anweisung habe ich weg gelassen. Auch im Handbuch
habe ich da nur den gemeinsamen Primärschlüssel stehen.

Wenn ich nun versuche über Base und die im Handbuch auf Seite 38
beschriebene SQL Anweisung einen Datensatz in die
Relationsdatenbank zu schreiben, bekomme ich immer den Fehlercode
1452 geliefert. Es kann kein neuer Datensatz in der Tabelle
angelegt werden.

Das ist für mich etwas schwieriger zu verstehen: Ich habe hier
verschiedene Handbuchversionen. Zu jeder neuen LO-Version kommt auch
ein neues Handbuch raus. Die aktuelle 4.4-Version hat auf s. 38 ein
Formular mit einem Listenfeld stehen - keine SQL-Anweisung.

Ähm ja, Entschuldigung, ich habe mich auf mein gedrucktes Handbuch (Version 4.3) bezogen, und dann auch später erst bemerkt, dass in der Version 4.4 (als PDF) da ein anderer Inhalt ist.

Ich habe also lediglich einmal versucht, in die Verbindungstabelle
Werte ein zu geben und das Formular entsprechend nach zu bauen. Das
funktioniert bei mir ohne Probleme.

Das Problem konnte auch bei mir gelöst werden, es lag an einer falschen Definition der Relation von der Tabelle Namen zu rel_Namen_Sportarten. Ich hatte da bei Update auf "cascade" gesetzt und nicht bei Delete.

Ach ja, kann es sein, dass die Relationen in Version 4.4 nicht sauber gespeichert werden? Ich hatte es nun des öfteren, dass die Beziehungen zwar nach der Definition gut zu sehen waren, jedoch nach dem Speichern und Verlassen der DB und nach einem Neuaufruf waren lediglich die Tabellen zu sehen, nicht aber die Beziehungen zwischen den Tabellen.

Anders ist das, wenn ich die Beziehungen nicht in LibreOffice Base erstelle sondern in phpMyAdmin, dann werden die auch korrekt in LibreOffice angezeigt.

Liebe Grüße

Jens

Hallo Jens,

Ach ja, kann es sein, dass die Relationen in Version 4.4 nicht
sauber gespeichert werden? Ich hatte es nun des öfteren, dass die
Beziehungen zwar nach der Definition gut zu sehen waren, jedoch
nach dem Speichern und Verlassen der DB und nach einem Neuaufruf
waren lediglich die Tabellen zu sehen, nicht aber die Beziehungen
zwischen den Tabellen.

Anders ist das, wenn ich die Beziehungen nicht in LibreOffice Base
erstelle sondern in phpMyAdmin, dann werden die auch korrekt in
LibreOffice angezeigt.

Du nutzt die MaraiaDB/MySQL. Es kann sehr wohl sein, dass da über
LibreOffice ein Problem besteht. Das hängt (vermutlich) mit mehreren
Faktoren zusammen:
1. Es gibt unterschiedliche Zugänge zu MySQL/MariaDB: direkt, JDBC, ODBC.
2. Nicht alle Tabellen von MySQL/MariaDB unterstützen Relationen:
MyISAM (Ich kann mich an erste Versuche mit Base erinnern - da tauchte
bei MySQL dann immer auf: "Diese Datenbank unterstützt keine Relationen")

Wie verbindest Du mit MySQL/MariaDB?

Gruß

Robert

Hallo Robert,

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hallo Jens,

Ach ja, kann es sein, dass die Relationen in Version 4.4 nicht
sauber gespeichert werden? Ich hatte es nun des öfteren, dass die
Beziehungen zwar nach der Definition gut zu sehen waren, jedoch
nach dem Speichern und Verlassen der DB und nach einem Neuaufruf
waren lediglich die Tabellen zu sehen, nicht aber die Beziehungen
zwischen den Tabellen.

Anders ist das, wenn ich die Beziehungen nicht in LibreOffice Base
  erstelle sondern in phpMyAdmin, dann werden die auch korrekt in
LibreOffice angezeigt.

Du nutzt die MaraiaDB/MySQL. Es kann sehr wohl sein, dass da über
LibreOffice ein Problem besteht. Das hängt (vermutlich) mit mehreren
Faktoren zusammen:
1. Es gibt unterschiedliche Zugänge zu MySQL/MariaDB: direkt, JDBC, ODBC.
2. Nicht alle Tabellen von MySQL/MariaDB unterstützen Relationen:
MyISAM (Ich kann mich an erste Versuche mit Base erinnern - da tauchte
bei MySQL dann immer auf: "Diese Datenbank unterstützt keine Relationen")

Wie verbindest Du mit MySQL/MariaDB?

Ich nutze die direkte Verbindung über den MySQL Connector, das Format der Tabellen meiner Datenbank ist InnoDB, wegen der Relationen...

Bei InnoDB sollten die Relationen eigentlich gehen.

Das die Verwaltung der Relationen über phpMyAdmin gut funktioniert, habe ich da momentan auch kein Problem. Hauptsache das Ergebnis läuft!

Sollte ich eher eine andere Anbindung nutzen? Ich fand die Einrichtung über den Connector sehr einfach. Leider funktioniert der Tabellenfilter nicht, so dass ich immer alle MySQL Datenbanken in der Auswahl sehe, das ist aber auch nicht wirklich ein Problem.

Vielen Dank für Deine Hilfe.

Grüße

Jens :slight_smile:

Hallo Jens,

Sollte ich eher eine andere Anbindung nutzen? Ich fand die Einrichtung
über den Connector sehr einfach. Leider funktioniert der Tabellenfilter
nicht, so dass ich immer alle MySQL Datenbanken in der Auswahl sehe, das
ist aber auch nicht wirklich ein Problem.

https://bugs.documentfoundation.org//show_bug.cgi?id=89070

was den Tabellenfilter angeht.

Alex