标签: sql-insert

MySql 插入多条记录并忽略重复记录

我有一个 MySQL INSERT 查询,它将一个产品添加到多个类别:

INSERT INTO _categories_products (product_id, category_id) VALUES (1, 14), (1, 8), (1, 1), (1, 22);
Run Code Online (Sandbox Code Playgroud)

这非常有用,但是,如果我将相同的产品添加到同一父类别的另一个子类别中,它将为父类别创建重复的记录:

INSERT INTO _categories_products (product_id, category_id) VALUES (1, 14), (1, 8), (1, 1), (1, 23);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

问题:忽略重复记录插入的合适的 MySQL 查询是什么?换句话说,第二个查询应该仅 INSERT 一条记录:1, 23

我也尝试过 INSERT IGNORE INTO 但没有任何改变。

谢谢你!


mysql sql duplicates sql-insert

0
推荐指数
1
解决办法
1093
查看次数

MySQL 使用 select 和一个常量值插入多行

我想将两个值插入到表中,一个值是常量(user_id),第二个值是从其他表中选择的。我有一个错误:

#1064 - 你的语法 obok 'select name from payment_methods_default)' w linii 1 有问题

insert into payment_methods_assigned_to_users (user_id, name)
VALUES (1, select name from payment_methods_default);
Run Code Online (Sandbox Code Playgroud)

mysql sql select sql-insert

0
推荐指数
1
解决办法
2565
查看次数

Postgres 从具有多个值的 select 语句插入

我已经检查过这个问题,但所有答案似乎都为只有一个字段的情况提供了解决方案。我需要在插入时另外设置一个字段。我尝试过类似的东西:

INSERT INTO foo (x, y)
select id
FROM boo b1, 3
Run Code Online (Sandbox Code Playgroud)

我明白了

SQL 错误 [42601]:错误:“3”处或附近的语法错误

如何使用selectAND 另一个值来INSERT INTOfoo?

postgresql sql-insert

0
推荐指数
1
解决办法
3839
查看次数

Postgresql使用触发器在插入值后更新列值

我想将值插入到 tableA 中,然后更新列 [amount_hkd]。我已经成功使用触发器,但性能非常慢,应用触发器后需要一个小时才能完成 8400 行的插入。我怎样才能提高性能?感谢您的帮助

要执行的语句:

INSERT INTO tableA (suppliers, invoice_dates, shipment_dates, amounts, currency, currency_conversion_rate)
SELECT l.supplier, l.invoice_date, l.shipment_date, l.amount, l.currency, o.currency_conversion_rate
FROM tableB l
LEFT JOIN tableC o
ON l.currency = o.currency_code
WHERE l.supplier = 'ABC'
Run Code Online (Sandbox Code Playgroud)

我创建的函数:

CREATE OR REPLACE FUNCTION cal() 
RETURNS TRIGGER AS $$ 
BEGIN 
UPDATE tableA 
SET amount_hkd = NEW.amounts * NEW.currency_conversion_rate;
RETURN NEW; 
END; 
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

我尝试的第一个触发器:

CREATE CONSTRAINT TRIGGER update_amount
AFTER INSERT ON tableA
DEFERRABLE
INITIALLY DEFERRED
FOR EACH ROW 
EXECUTE PROCEDURE …
Run Code Online (Sandbox Code Playgroud)

sql postgresql triggers sql-update sql-insert

0
推荐指数
1
解决办法
4894
查看次数

插入多个日期时的java.sql.SQLException

当我尝试向表中插入多个日期值时出现错误,但是当我尝试使用一个日期值时它会成功执行.

使用2个以上日期值时出现的错误是:

java.sql.SQLException: [MySQL][ODBC 5.1 Driver][mysqld-5.5.15]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 'From) values(100,1,_binary'2011-09-17',_binary'2011-09-18')' at line 1 
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source) 
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) 
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(Unknown Source) 
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(Unknown Source) 
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate(Unknown Source) 
at SampleProg.InsertDate(SampleProg.java:37) 
at SampleProg.main(SampleProg.java:65) 
Run Code Online (Sandbox Code Playgroud)

我的源代码是:

import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import java.io.IOException; 
import java.sql.*; 


public class SampleProg { 
public void InsertDate(int ref,int id,Date d1,Date d2) 
{   
Connection …
Run Code Online (Sandbox Code Playgroud)

java mysql sql sql-insert

-1
推荐指数
1
解决办法
359
查看次数

为什么我的INSERT INTO多个输入不起作用?

我正在尝试使用php和mysql在我的数据库中放入多条记录.如果我不尝试做第二次INSERT,我可以做第一次INSERT.一旦我添加第二个插入,根本没有写入任何记录.我认为这是一个语法错误,但我尝试了非常清楚的例子来自http://www.w3schools.com/php/php_mysql_insert_multiple.asp通过php数组插入多行到mysql但仍然无法正常工作.唯一的区别是声明末尾的连接和半连接.

我有什么想法可能做错了吗?

 $query="INSERT INTO  myTable (
 `user1` ,
 `user2` ,
 `user3` 
 )
 VALUES ('data1', 'data2' , 'data3');";

   $query .="INSERT INTO  myTable (
 `user1` ,
 `user2` ,
 `user3` 
 )
 VALUES ('data4', 'data5' , 'data6')";
Run Code Online (Sandbox Code Playgroud)

php mysql sql-insert

-1
推荐指数
1
解决办法
56
查看次数

PHP - 插入数据库问题

我正在尝试将数据输入数据库.我使用echo来查看是否正在读取数据库,它是和输入的数据库echo一样,它只是不插入数据库.这是我用于注册页面的相同代码,除了新的修改,我的注册页面工作完美,所以我有点困惑为什么它不工作.

HTML

            <!--                    <div id="first">-->
            <input type="text" id="fname" name="fname" value="" required> 
            <input type="text" id="lname" name="lname" value="" required>
            <input type="text" id="email" name="email" value="" required>
            <input type="number" id="phone" name="phone" value="" required>
            <input type="submit" name="Update" value="Update">
            <br>
Run Code Online (Sandbox Code Playgroud)

PHP

   <?php
   session_start();
   require('../mysql.inc.php');
   ?>

    <?php
        if (isset($_POST['Update'])) {
            echo $c_fname = $_POST['fname'];
            echo $c_lname = $_POST['lname'];
            echo $c_email = $_POST['email'];
            echo $c_phone = $_POST['phone'];



            $insert_det = "INSERT INTO Cus_acc_details(CUS_Fname,CUS_Lname,CUS_Phone,Cus_Email) VALUES (?,?,?,?)";
            $stmt = mysqli_prepare($dbc, $insert_det);

            mysqli_stmt_bind_param($stmt, 'sssi', $c_fname, $c_lname, $c_email, $c_phone);

            if ($insert_det) {
                echo …
Run Code Online (Sandbox Code Playgroud)

php mysql forms sql-insert

-1
推荐指数
1
解决办法
102
查看次数

我想实现一些不允许用户评价多次的内容

我使用过其他人使用ipaddress方式的代码.但是,我想使用检查当前用户ID和ID号的代码.

$ipaddress = md5($_SERVER['REMOTE_ADDR']); // here I am taking IP as UniqueID but you can have user_id from Database or SESSION

/* Database connection settings */
$con = mysqli_connect('localhost','root','','database');

if (mysqli_connect_errno()) {
    echo "<p>Connection failed:".mysqli_connect_error()."</p>\n";
}   /* end of the connection */

if (isset($_POST['rate']) && !empty($_POST['rate'])) {
    $rate =  mysqli_real_escape_string($con, $_POST['rate']);
    // check if user has already rated
    $sql = "SELECT `id` FROM `tbl_rating` WHERE `user_id`='" . $ipaddress . "'";
    $result = mysqli_query( $con, $sql);
    $row =  mysqli_fetch_assoc();//$result->fetch_assoc();
    if (mysqli_num_rows($result) …
Run Code Online (Sandbox Code Playgroud)

php mysqli unique-key sql-insert

-1
推荐指数
1
解决办法
99
查看次数

我如何从另一个表中选择

基本上,我想运行这样的SQL语句,但是由于错误而不能。不知道为什么吗?

INSERT INTO allevent (eventname) 
VALUES (select username from registered)
Run Code Online (Sandbox Code Playgroud)

消息156,级别15,状态1,第1行
关键字'select'附近的语法错误。

消息102,级别15,状态1,行1
')'附近的语法不正确。

sql sql-server syntax-error sql-insert

-1
推荐指数
1
解决办法
64
查看次数

Coldfusion将记录插入Oracle DB

我试图将记录从Coldfusion插入Oracle DB 11(g),但错误日志显示ORA-00911:无效字符。我可以从Oracle DB中选择记录,但无法插入。

下面是我的代码。

<cfquery name="qOracleData" datasource="Oracle_Test">
    Insert into postindept (deptid, propos_position, descr, sm_descr60, grade) values ('1','110000  ', '110000  ','510000 ' ,'10');
    COMMIT;
</cfquery>
Run Code Online (Sandbox Code Playgroud)

oracle coldfusion sql-insert

-1
推荐指数
1
解决办法
81
查看次数