
Untitled
By: a guest on
Jun 30th, 2012 | syntax:
None | size: 0.95 KB | hits: 16 | expires: Never
THESE STATEMENTS CREATED BYE _0@
CREATE TABLE 'Foo' (
'foo' INTEGER PRIMARY KEY NOT NULL,
'bar' VARCHAR(10) NOT NULL ,
'baz' VARCHAR(10),
'biff' VARCHAR(10),
);
CREATE TEMPORARY TABLE 'Foo_temp_alter' (
'foo' INTEGER PRIMARY KEY NOT NULL,
'bar' VARCHAR(10) NOT NULL,
'baz' VARCHAR(10)
):
:
When we run the following:
INSERT INTO 'Foo_temp_alter' SELECT 'foo', 'bar', 'baz' FROM 'Foo':
We Get:
DBI Exception: DBD::SQLite::db do failed: datatype mismatch
THIS IS TOTALLY FINE:
CREATE TABLE Foo (
foo INTEGER PRIMARY KEY NOT NULL,
bar VARCHAR(10) NOT NULL,
baz VARCHAR(10)
);
CREATE TEMPORARY TABLE Foo_temp_alter (
foo INTEGER PRIMARY KEY NOT NULL,
bar VARCHAR(10) NOT NULL,
baz VARCHAR(10)
);
INSERT INTO Foo_temp_alter SELECT foo, bar, baz FROM Foo:
MY GUESS...
INSERT INTO 'Foo_temp_alter' SELECT 'foo', 'bar', 'baz' FROM 'Foo':
that is doing select literals not select on column
For example:
sqlite> select 'foo' from 'Foo';
foo
foo
foo
foo
foo