Hello,
I have created a table.
CREATE TABLE "sales" (
"client" TEXT,
"salesman" TEXT,
"revenue" REAL,
PRIMARY KEY("client","salesman")
);
I can run the query below mutliple times without any error :
INSERT INTO sales ("client", "salesman", "revenue")
VALUES ('C1', NULL, 10.0);
Have I missed something in the CREATE instruction ?
Is this a normal behaviour ?
I have tried to read https://sqlite.org/lang_createtable.html#constraints and
https://www.sqlite.org/nulls.html but I don't really have found why I can
insert 2 records that have the same primary key.
SQLite version 3.27.2 2019-02-25 16:06:06
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .headers on
sqlite> .mode column
sqlite> .nullvalue null
sqlite>
sqlite> CREATE TABLE "sales" (
...> "client"TEXT,
...> "salesman"TEXT,
...> "revenue"REAL,
...> PRIMARY KEY("client","salesman")
...> );
sqlite>
sqlite>
sqlite>
sqlite> INSERT INTO sales ("client", "salesman", "revenue")
...> VALUES ('C1', NULL, 10.0);
sqlite>
sqlite> INSERT INTO sales ("client", "salesman", "revenue")
...> VALUES ('C1', NULL, 10.0);
sqlite>
sqlite> INSERT INTO sales ("client", "salesman", "revenue")
...> VALUES ('C1', '', 10.0);
sqlite>
sqlite> INSERT INTO sales ("client", "salesman", "revenue")
...> VALUES ('C1', '', 10.0);
Error: UNIQUE constraint failed: sales.client, sales.salesman
sqlite>
sqlite> SELECT * FROM sales;
client salesman revenue
---------- ---------- ----------
C1 null 10.0
C1 null 10.0
C1 10.0
sqlite>
Thanks in advance for your insights.
Alex
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users