2017-12-12 1 views
0

同様の質問がされましたが、私の特定の問題の解決策を見つけることができないようです。MySQLの行が一致しました:1変更:0警告:0日付の列の場合

生徒用テーブルの「end_date」列を更新しようとしましたが、一致しました:1変更:0警告:0としてのメッセージ。

これは私がしたものです。 '2017年12月22日' にEND_DATEを変更しようと

mysql> SELECT studentID,end_date FROM Student WHERE studentID = 256; 
+-----------+----------+ 
| studentID | end_date | 
+-----------+----------+ 
|  256 | NULL  | 
+-----------+----------+ 
1 row in set (0.00 sec) 

mysql> UPDATE Student Set end_date = '2017-12-22' WHERE studentID = 256; 
Query OK, 0 rows affected (0.01 sec) 
Rows matched: 1 Changed: 0 Warnings: 0 

mysql> SELECT studentID,end_date FROM Student WHERE studentID = 256; 
+-----------+----------+ 
| studentID | end_date | 
+-----------+----------+ 
|  256 | NULL  | 
+-----------+----------+ 
1 row in set (0.00 sec) 

。選択クエリと更新クエリとのend_dateカラムの値は明らかに異なるため、何が起こっているのか分かりません。ダブルチェックするために、私は選択クエリを更新クエリの後に再度実行しました。不思議なことに、私はphysical_dateとstart_dateを同様の更新文でうまく変更できます。

ここでは、私のスチューデントテーブルのコンテキストをSHOW CREATE TABLEクエリを使用して示します。

CREATE TABLE `Student` (
    `studentID` int(11) NOT NULL AUTO_INCREMENT, 
    `last_name` varchar(45) NOT NULL, 
    `first_name` varchar(45) NOT NULL, 
    `sex` varchar(1) NOT NULL, 
    `DOB` date NOT NULL, 
    `age` decimal(5,2) NOT NULL, 
    `start_date` date NOT NULL, 
    `physical_date` date NOT NULL, 
    `status` varchar(20) NOT NULL COMMENT 'active\ninactive', 
    `room` varchar(20) NOT NULL, 
    `auth_type` varchar(1) NOT NULL COMMENT 'C\nS\nO', 
    `tuition_type` varchar(45) NOT NULL COMMENT 'full\npart', 
    `email` varchar(80) DEFAULT NULL, 
    `phone_number` varchar(12) DEFAULT NULL, 
    `end_date` date DEFAULT NULL, 
    `allow_picture` varchar(3) DEFAULT NULL COMMENT 'yes\nno', 
    PRIMARY KEY (`studentID`), 
    KEY `fk_Student_Room_idx` (`room`) 
) ENGINE=InnoDB AUTO_INCREMENT=262 DEFAULT CHARSET=utf8 | 
+0

「古いものと新しいものは明らかに違いがあります」ではなく、「古いもの」とは何を意味していますか? end_dateが両方でNULLである2つの同一の結果しか表示されないので、全く違いはありません –

+0

申し訳ありませんが、より明確にするために質問が更新されます。私は、2つの選択クエリの途中で更新クエリを参照していました。 – Clicky

答えて

0

[OK]を私は本当に残念ですが、変更、更新の前にトリガがあったように見えますend_dateをNULLに設定します。すべてをチェックしていないことに頭を打つ。

0

は、私はあなたが列名にバックチックに欠けていると信じて

すなわち

UPDATE Student SET `end_date`="2017-12-22" WHERE studentID=256; 
+0

申し訳ありませんが、これはうまくいきませんでした。私は同じ結果を得ています – Clicky

+1

あなたの自動コミットの設定は何ですか?あなたは間違ってトランザクションに暗黙のうちにいますか? –

関連する問題