SQLite:如何将相同的值插入多个列?

时间:2016-06-14 06:08:40

标签: mysql sql sqlite

我想为表中的所有列提供相同的TimeStamp值。让我们说列是未知的。 有没有办法做到这一点  ExecuteReader.SpanStart - 2 没有指定列名?

更新

假设我有一个名为'student'的表,我有'f_name','m_name'和'l_name'。

让我们说(假设)我做INSERT INTO table VALUES ('one value');

然后我希望我的桌子看起来像这样。

INSERT INTO student VALUES ('John');

4 个答案:

答案 0 :(得分:2)

这实际上可以在postgres中完成。我不认为你可以在sqlite中做到这一点。使用以下查询,您可以生成所需的insert语句,而无需知道表的列。将MY_TABLE替换为数据库中的表名。

SELECT 'INSERT INTO MY_TABLE ' || array_to_string(ARRAY(SELECT '' || c.column_name
        FROM information_schema.columns As c
            WHERE table_name = 'MY_TABLE' 
    ), ',') || ' VALUES (' ||
array_to_string(ARRAY(SELECT '' || '\'MY_VALUE\''
        FROM information_schema.columns As c
            WHERE table_name = 'MY_TABLE' 
    ), ',') || ');' 
    As sqlstmt

答案 1 :(得分:0)

Sqlite和Mysql不支持在单个查询上插入多表。

SQLite的 http://www.sqlite.org/lang_insert.html

的MySQL http://dev.mysql.com/doc/refman/5.7/en/insert.html

但是还有一些其他数据库支持这些功能,即Oracle。据我所知。

答案 2 :(得分:0)

如果您知道列数,则可以使用

INSERT INTO table VALUES ('Cardinal',..........,'Cardinal');  //As many times as number of columns

答案 3 :(得分:0)

您可以使用UPDATE执行此操作:

UPDATE TableName SET ColumnName = 'Value';

只有在表格中已有数据时才会有效。