Igor Korot wrote:
> Hi, ALL,
> 
> sqlite> CREATE TABLE leagueplayers(id integer, playerid integer, value 
> integer,
> currvalue double, foreign key(id) references leagues(id), foreign 
> key(playerid)
> references players(playerid));
> sqlite> INSERT INTO leagueplayers VALUES(1,(SELECT playerid,value,currvalue 
> FROM
>  players));
> Error: table leagueplayers has 4 columns but 2 values were supplied
> 
> AFAICT, I am trying to insert 4 values in the table.

No, you
1) insert *two* values: 1 and (SELECT) expression;
2) improperly use (SELECT) expression:
There are no array type in sqlite. Only single column results is allowed for
(SELECT) expression, e.g.:
sqlite> SELECT (SELECT 1,2);
Error: only a single result allowed for a SELECT that is part of an expression

Just only first discovered error can be returned (and in this case it was
inconsistent number of columns for insert).

> Does anybody have an idea what is wrong?

Correct:

INSERT INTO leagueplayers (id, playerid, value, currvalue)
     SELECT 1, playerid,value,currvalue FROM players;

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to