使用在MySQL“插入”“限制”?(Use “LIMIT” in a MySQL “INSERT”?

2019-06-26 16:58发布

我可以使用LIMIT 2 MySQL的INSERT查询? 例如

INSERT INTO MyTable
   (user_name,password)
VALUES
   (john,366543),
   (sam,654654)
LIMIT 2

我试着和它说

`#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 2' at line 1`

Answer 1:

你可以这样做使用INSERT ... SELECT语法 :

INSERT INTO MyTable (user_name, password)
SELECT 'john', '366543'
UNION ALL SELECT 'sam', '654654'
LIMIT 2;

不知道为什么你会想...也许,如果你有一个很长的,你想轻松地通过设定上限值控制的静态值列表?

编辑:由于PST笔记中, LIMIT实际上是部分SELECT ,并没有任何与INSERT本身...



Answer 2:

LIMIT 2将只选择没有值工作



Answer 3:

天色如果我们从另一个表时插入数据,我们需要限制设置为插入数据的具体数字

     insert into cas_user (cas_name) select cas_name from users limit 1,5;

希望这会有所帮助。



Answer 4:

如果你正在尝试使用限制插入件巨大的批量数据,你是MySQL的规定的初始约束范围内运行。

尝试增加的制约,而值:PFB

变量:max_allowed_pa​​cket的 ,bulk_insert_buffer_size,key_buffer_size

示例查询显示和设置:

show variables like 'max_allowed_packet';
SET GLOBAL max_allowed_packet=524288000;

参考文献:
http://forums.mysql.com/read.php?20,161869

MySQL的-有多少行我可以在一个单一的INSERT语句插入?



Answer 5:

我知道这是一个老的文章,但你可以使用foreach循环来限制插入语句。 就像是:

    $i = '1';   
    foreach($item as $item){
        IF($i <= '2'){
            IF ($stmt = $connection->prepare("INSERT IGNORE INTO `db`.`table`( `item`) VALUES (?)")) {

                /* Bind our params */
                $stmt->bind_param('s' , $item);

                $stmt->execute();

                $stmt->close();
            }
        }
        $i++;
    }


Answer 6:

不,你不能在插入查询使用限制



文章来源: Use “LIMIT” in a MySQL “INSERT”?