myslq-Insert - Ich steh auf dem Schlauch
Marc
- datenbank
Hallo,
ich habe diese Tabelle
CREATE TABLE PA_packages_subnotes (
idPackages_init int(11) NOT NULL default '0',
idSubnotes int(11) NOT NULL default '0',
PRIMARY KEY (idPackages_init,idSubnotes)
)
Dazu diesen Query:
INSERT INTO PA_packages_subnotes SET
idPackages_init = '7',
idSubnotes = '10'
Und ich bekomme immer diese Fehlermeldung:
#1054 - Unknown column 'idPackages_init' in 'field list'
Bin ich bescheuert??! Wieso geht das nicht. Wenn ich nur idSubnote einen Wert zuweise funktioniert es...
Hi,
PRIMARY KEY (idPackages_init,idSubnotes)
Vielleicht, weil es nicht erlaubt ist, zwei Primary-Keys zu haben?
Hi,
PRIMARY KEY (idPackages_init,idSubnotes)
Vielleicht, weil es nicht erlaubt ist, zwei Primary-Keys zu haben?
? Zusammengesetzter Primary Key... Wie sollte man sonst Tabellen für Relations erstellen...?
Hi,
PRIMARY KEY (idPackages_init,idSubnotes)
Vielleicht, weil es nicht erlaubt ist, zwei Primary-Keys zu haben?
Doch das geht, sonst würde ja schon das Anlegen der Tabelle mit den zwei Primary Keys nicht funktionieren, würde ich jetzt mal so behaupten. Habs sogar getestet und es geht.
Hi,
Doch das geht, sonst würde ja schon das Anlegen der Tabelle mit den zwei Primary Keys nicht funktionieren, würde ich jetzt mal so behaupten. Habs sogar getestet und es geht.
Ok, war nur ne Vermutung. Ich glaub, ich hab irgendwann mal von phpMyAdmin einen rüffler gekriegt, das ich nicht zwei Spalten als Primary definieren darf, allerdings kann ich da auch was verwechseln, weil das schon ne Zeit lang her ist.
Ich bitte, meine Aussage zu ignorieren ;)
echo $begrüßung;
Ich glaub, ich hab irgendwann mal von phpMyAdmin einen rüffler gekriegt, das ich nicht zwei Spalten als Primary definieren darf, allerdings kann ich da auch was verwechseln, weil das schon ne Zeit lang her ist.
Zwei Pks - einen für Spalte A und einen für Spalte B - einzurichten, geht natürlich nicht. Es kann nur einen Ersten geben.
Einen PK über mehrere Spalten zu legen geht aber sehr wohl. Sieht du den Unterschied?
In phpMyAdmin gibt es eine extra Möglichkeit, solche Indizes anzulegen. Das Ankreuzen während der Spaltendefinition ist es nicht. Das ist nur eine Kurzform für die vermutlich im Hausgebrauch häufiger gebrauchten einspaltigen Indizes.
echo "$verabschiedung $name";
Hi,
Zwei Pks - einen für Spalte A und einen für Spalte B - einzurichten, geht natürlich nicht. Es kann nur einen Ersten geben.
Einen PK über mehrere Spalten zu legen geht aber sehr wohl. Sieht du den Unterschied?
Ja, jetzt hab ich den Unterschied verstanden. Ich merke, das ich trotz längerer Benutzung von mySQL noch immer ganz am Anfang stehe.
Probier doch mal:
INSERT INTO pa_packages_subnotes VALUES (7, 10)
ansonsten könnte es an deiner MySQL-Version liegen. Bei mir klappt deine Variante mit SET und MySQL 5.0.15 hervorragend.
Gruß,
Kerstin
Ich hab's!
Hinter dem Spaltennamen war in der DB ein Leerzeichen... Ich dachte immer, das wird automatisch abgeschnitten - scheinbar doch nicht :)
Wo ich schon dabei bin, habe ich noch ein anderes Problem, mit dem ich gestern zwar schon in einem anderen Forum war. Dort konnte mir aber keiner helfen, vielleicht gibt es hier die Lösung.. Es geht um das Löschen von Datensätzen über mehrere Tabellen hinweg:
Mein Query:
DELETE PA_products, PA_categories_use
FROM PA_products, PA_categories_use
WHERE PA_products.idProducts = '4'
AND PA_products.idProducts = PA_categories_use.idProduct
Fehlermeldung:
#1064 - You have an error in your SQL syntax near 'PA_products,
PA_categories_use FROM PA_products,
PA_categories_use WHERE PA_prod' at line 1
echo $begrüßung;
#1064 - You have an error in your SQL syntax near [...]
Das deutet darauf hin, dass du eine Syntax zu verwenden versuchst, die (in deiner Version noch) nicht erlaubt ist.
Vielleicht hilft dir der Hinweis am Ende der DELETE-Syntax-Handbuchseite (Version < 5.0)
echo "$verabschiedung $name";