Am Thu, 7 Sep 2017 00:15:39 +0200 schrieb Cecil Westerhof:
> 2017-09-07 0:05 GMT+02:00 R Smith <rsm...@rsweb.co.za>:
>> On 2017/09/06 11:58 PM, R Smith wrote:
>>> Your CHECK constraint should really find that the value is acceptable
>>> when it is either a REAL, OR an INT, because both those types of data
>>> satisfies your requirement.
>> To be specific, this should work for you:
>> CREATE TABLE weights(
>> float REAL,
>> CONSTRAINT float CHECK(TYPEOF(float) IN ("real","int"))
> But it does not.
> The strange thing is: when I remove the constraint and do:
> INSERT INTO testing
> The insert is successful of-course.
> When I then execute:
> SELECT float, TYPEOF(float)
> FROM testing
> I get:
> "0.0" "real"
> Maybe this is correct, but it is certainly confusing.
Add this trigger and everything is fine. ;-)
CREATE TRIGGER weights_float_force_datatype
BEFORE INSERT ON weights
FOR EACH ROW
INSERT INTO weights(float) VALUES (CAST (new.float AS REAL));
sqlite-users mailing list