Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQLite:如何向多个列插入相同的值?_Mysql_Sql_Sqlite - Fatal编程技术网

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

Mysql SQLite:如何向多个列插入相同的值?,mysql,sql,sqlite,Mysql,Sql,Sqlite,我想为表中的所有列提供相同的时间戳值。假设这些列是未知的。 有什么办法可以这样做吗 插入表值(“一个值”) 不指定列名 更新: 假设我有一个名为“student”的表,其中有“f_name”、“m_name”和“l_name” 假设我在学生价值观中插入了('John') 然后我希望我的桌子看起来像这样 -----------student------------ f_name | m_name | l_name ------------------------------ Joh

我想为表中的所有列提供相同的时间戳值。假设这些列是未知的。 有什么办法可以这样做吗
插入表值(“一个值”)
不指定列名

更新:

假设我有一个名为“student”的表,其中有“f_name”、“m_name”和“l_name”

假设我在学生价值观中插入了
('John')

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

-----------student------------
 f_name  |   m_name  |  l_name
------------------------------
  John   |    John   |   John    <--- (The record i just inserted)
-------------学生------------
f|u name | m|u name | l|u name
------------------------------

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

Sqlite

MySql


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

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

Sqlite

MySql


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

如果你知道列数,那么你可以使用

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

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

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

您可以使用
更新

UPDATE TableName SET ColumnName = 'Value';

只有当您的表中已有数据时,此操作才有效。

您可以使用
更新
来完成此操作:

UPDATE TableName SET ColumnName = 'Value';

只有当您的表中已经有数据时,这才有效。

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

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

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

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


可以对所有记录执行
更新
。您可以简单地忽略任何
中的
限制。但是对于
INSERT
来说,这没有意义,因为RDBMS怎么知道停止(或开始)插入所需数量的记录呢?这与行无关。反正是一张唱片。我不知道如何进一步解释这一点。很抱歉我的要求其实很简单。所有列只有一个值。您知道列数吗?或者这也是未知的?@TimBiegeleisen请检查更新。这是我所能解释的。回答你的问题,是的。列数也是未知的。我能看到的唯一方法是首先从表中查询列。但强制您列出列是一种很好的做法。例如,如果一列的类型为
TINYINT
,会发生什么情况?您的插入可能会导致错误。一般来说,您不应该在整个记录中盲目插入数据。可以对所有记录执行
更新。您可以简单地忽略任何
中的
限制。但是对于
INSERT
来说,这没有意义,因为RDBMS怎么知道停止(或开始)插入所需数量的记录呢?这与行无关。反正是一张唱片。我不知道如何进一步解释这一点。很抱歉我的要求其实很简单。所有列只有一个值。您知道列数吗?或者这也是未知的?@TimBiegeleisen请检查更新。这是我所能解释的。回答你的问题,是的。列数也是未知的。我能看到的唯一方法是首先从表中查询列。但强制您列出列是一种很好的做法。例如,如果一列的类型为
TINYINT
,会发生什么情况?您的插入可能会导致错误。一般来说,您不应该在整个记录中盲目插入数据。我认为这行不通。此处需要列名。@TimBiegeleisen根据w3school.com,第一种形式没有指定插入数据的列名,只指定它们的值:
INSERT-INTO-table\u-name-values(value1、value2、value3,…)看一看。您看到的页面很可能是通用SQL,而不是MySQL方言。我认为这不起作用。此处需要列名。@TimBiegeleisen根据w3school.com,第一种形式没有指定插入数据的列名,只指定它们的值:
INSERT-INTO-table\u-name-values(value1、value2、value3,…)看一看。您看到的页面很可能是通用SQL,而不是MySQL方言.Yep。我需要的是一张新唱片。我需要的是一个新记录。这正是我需要的,但在SQLite中。无论如何,谢谢。这正是我需要的,但在SQLite中。无论如何,谢谢你。