を挿入するために、私は私が実行したいこの文があります。どのようにブール条件でMySQLに
INSERT INTO kitchenitems (kno, `date`, added_Date, added_By)
VALUES (5,'2016-04-01', now(), 2);
をしかし、それは私が「5」かどうかを持っている「自演」かどうかを確認したい実行される前に。そうでなければ実行する必要があります。もしそれが実行されるべきではありません。前もって感謝します。
を挿入するために、私は私が実行したいこの文があります。どのようにブール条件でMySQLに
INSERT INTO kitchenitems (kno, `date`, added_Date, added_By)
VALUES (5,'2016-04-01', now(), 2);
をしかし、それは私が「5」かどうかを持っている「自演」かどうかを確認したい実行される前に。そうでなければ実行する必要があります。もしそれが実行されるべきではありません。前もって感謝します。
あなたはこのような何か行うことができます:あなたはkno
の一意の値が必要な場合は、
INSERT INTO kitchenitems (`kno`, `date`, `added_Date`,`added_By`)
SELECT kno,date,added_Date,added_By
FROM (SELECT '5' as kno, '2016-04-01' as date, NOW() as added_Date, '2' as added_By) a
WHERE NOT EXISTS (SELECT 1 FROM kitchenitems b WHERE a.kno = b.kno);
しかしを、あなたのサーバー側ですべきensure that。
thanxメート。魅力的に働いた! –
こんにちは私はそれが簡単にストアドプロシージャで行うことができると思う...私はあなたがこの記事を読むことをお勧めしますHERE私はそれがあなたの解決策に対する答えだと思います。
ここはそれがあなたの問題にどのように動作するかを確認するためにSQL Fiddleです...ここ
は、ストアドプロシージャ
CREATE PROCEDURE addItem
(IN inkno INT, IN inddate DATETIME, IN inadded_Date DATETIME, IN inadded_By INT)
BEGIN
DECLARE SomeId int;
DECLARE CheckExists int;
SET CheckExists = 0;
SELECT count(*) INTO CheckExists from kitchenitems WHERE kno = inkno;
IF (CheckExists > 0) THEN
SELECT kno INTO SomeId FROM kitchenitems WHERE kno = inkno;
ELSE
INSERT INTO kitchenitems (kno,ddate,added_Date,added_By)
VALUES (inkno, inddate,inadded_Date, inadded_By);
END IF;
END/
は '主キーをkno'はありますか?またはプライマリキーにしたいですか? – Sevle
@SevleいいえPK –
番号5が動的な場合は、プログラミング言語(SQLではなく)で作成する必要があります。あなたはその側のifステートメントの番号をチェックできませんか? –