Today’s quiz comes out of an e-mail conversation with fenixshadow, aka
On my system (5.0.45-Debian_1ubuntu3.1-log) , I run these
commands:
CREATE TABLE t (
ID INT NOT NULL PRIMARY KEY,
PID INT,
FOREIGN KEY (PID) REFERENCES t(ID)
) ENGINE=INNODB;
INSERT INTO t VALUES (1, NULL);
INSERT INTO t VALUES (2, NULL);
SELECT * FROM t yields the expected result:
+----+------+
| ID | PID |
+----+------+
| 1 | NULL |
| 2 | NULL |
+----+------+
I now do
UPDATE t SET PID = 2 WHERE ID = 1
and observe the result of SELECT * FROM t again:
+----+------+
| ID | PID |
+----+------+
| 2 | NULL |
| 1 | 2 |
+----+------+
Question 1: Can you easily explain why the rows are now in
reverse order?
(more…)