Le Thursday 04 January 2007 02:MM, wayne a écrit : > When I run the add column script, "ksqlite_add_column.sh" it results in the > following error message after displaying the contents of 3 records: > > SQL error: table ebaynov2006kexi has 36 columns but 35 values were supplied > > What does this message mean?
Your old database had 35 fields (i.e. each record has 35 values). The new one obviously has 36 fields, and therefore each record _should_ have 36 values. In this case, it seems that the script failed to add one more value to 3 records of the old db. Could you post the content of the 3 faulty records? > > The end result is that the 3 records are deleted from the database. > However, the column that I intended to add has been added. > > How can I run this script in the future without losing data? Wait for it to be fixed ;) In the meantime, make sure your database is backuped before running this script. It seems to me that this problem has to do the sed -e "s/\(^INSERT.*\));$/\\1, NULL);/g" part of the script that assumes sqlite dumps provides all values : that is to say INSERT INTO xx values (v1, v2, ..., v35); even if v35 is NULL or '' or the default value. Would it be possible for you to build a kexi database containing only 2 records: 1 taken from the 3 faulty ones, and 1 which was ok ? Then the output of echo ".dump '$table_name';" | ksqlite -noheader "$database_name" would be helpful. Kevin _______________________________________________ Kexi mailing list [email protected] https://mail.kde.org/mailman/listinfo/kexi
