は私が3つのテーブルを作成:製品、記事とcategory.Iは、外部キーのためのテーブルに参加しました:外部キーおよび更新記録
CREATE TABLE `products` (
`id` int(11) AUTO_INCREMENT PRIMARY KEY,
`added` varchar(30) NOT NULL,
`nazwa` int(11) NOT NULL,
`kategoria` int(11) DEFAULT NULL,
`sn` varchar(100) NOT NULL,
`quantity` int(10) NOT NULL,
`data` date NOT NULL,
`godzina` time NOT NULL,
`warranty` date NOT NULL,
FOREIGN KEY (`nazwa`) REFERENCES `article`(`article_id`),
FOREIGN KEY (`kategoria`) REFERENCES `category` (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;
すべてが正常に動作します。問題は、テーブル製品でレコードを更新しようとするときです。
は、私はこれを試してみてください。しかし、このクエリはUPDATE `products`
SET
`added` = 'michal',
`nazwa` = 'ball',
`kategoria` = 'toys',
`sn` = '14dsa564dsa65',
`data` = NOW(),
`godzina` = CURTIME()
WHERE
`id` = 13
働いていません。私が使用したアップデートのために
SELECT
products.id,
products.added,
article.nazwa,
category.kategoria,
products.sn,
products.quantity,
products.data,
products.godzina,
products.warranty
FROM
products
LEFT JOIN
category ON products.kategoria = category.category_id
LEFT JOIN
article ON products.nazwa = article.article_id
ORDER BY id
::私はdatbaseからレコードを返す習慣
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (
test
.products
, CONSTRAINTproducts_ibfk_1
FOREIGN KEY (nazwa
) REFERENCESarticle
(article_id
)) 0.157 sec
見て私はこのクエリを使用し
UPDATE `products`
SET
products.added= 'michal',
article.nazwa= 'ball',
category.kategoria = 'toys',
products.sn= '14dsa564dsa65',
products.data = NOW(),
products.godzina = CURTIME(),
LEFT JOIN
category ON products.kategoria = category.category_id
LEFT JOIN
article ON products.nazwa = article.article_id
WHERE
`id` = 13
が、スローエラー:
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LEFT JOIN category ON products.kategoria = category.category_id LEFT' at line 10 0.000 sec
を必要とされていませんそして、あなたはすべてのエラーメッセージ – RiggsFolly
を得るのですか
JOIN
の両方を削除するには、 'nazwa'および/またはまだのarticle_id'としては存在しない値を持つ 'kategoria'を更新しようとしています他の2つのテーブルに既に存在していなければなりません – RiggsFollyどのような左の結合は何ですか?私はそれらを削除し、すべてがうまく動作すると言うだろう。 –