标签: sql-insert

Postgres LEFT JOIN创建的行多于左表

我在Windows 7 x64上运行Postgres 9.1.3 32位.(已使用32位因为没有Windows的PostGIS版本与64位兼容的Postgres)(编辑:作为PostGIS的2.0,它是与Windows Postgres的64位兼容.)

我有一个查询,左边连接一个table(consistent.master)与临时表,然后将结果数据插入第三个表(consistent.masternew).

由于这是a left join,因此结果表应与查询中的左表具有相同的行数.但是,如果我运行这个:

SELECT count(*)
FROM consistent.master
Run Code Online (Sandbox Code Playgroud)

我得到2085343.但如果我运行这个:

SELECT count(*)
FROM consistent.masternew
Run Code Online (Sandbox Code Playgroud)

我得到2085703.

怎么masternew会有更多的行master?不应该与查询中的左表masternew有相同的行数master

以下是查询.在mastermasternew表应该是相同的结构.

--temporary table created here
--I am trying to locate where multiple tickets were written on
--a single traffic stop
WITH stops AS (
    SELECT citation_id,
           rank() OVER (ORDER BY offense_timestamp,
                     defendant_dl,
                     offense_street_number,
                     offense_street_name) …
Run Code Online (Sandbox Code Playgroud)

postgresql left-join sql-insert

1
推荐指数
2
解决办法
3931
查看次数

我无法在SQL Server中插入表

我创建了一个存储过程,它有两个语句insertupdate.

它有两个参数:

@content as nvarchar(10),
@fieldName as int
Run Code Online (Sandbox Code Playgroud)

Update线路一切正常,但它不会插入到表.语法和一切都是真的,但是当我执行时

Execute sp_update 432,4
Run Code Online (Sandbox Code Playgroud)

SQL Server显示此错误:

消息207,级别16,状态1,行1
无效的列名称"up".
消息207,级别16,状态1,行1
无效的列名称"Field3".

这是我的脚本:

ALTER procedure [dbo].[sp_update]
    @content as nvarchar(10),
    @fieldName as int
as
   declare @ff as varchar
   set @ff = Convert(varchar,@fieldName)

   declare @f as char(7) 
   set @f = 'Field'+ @ff

   declare @sqlupdate varchar(500)
   declare @sqlinserttoChangelog varchar(500)

   set @sqlinserttoChangelog = 'Insert Into dbo.changelog (changeType, fieldname) Values ('+'up'+','+@f+')'
   Exec (@sqlinserttoChangelog)

   set @sqlupdate = 'update TableTest set ' + @f + …
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures sql-update sql-insert

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

MySQL错误:您的SQL语法中有错误

我从mySQL收到此错误消息:

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 'key,time) 
VALUES ('FreeTest','86400')' at line 2
Run Code Online (Sandbox Code Playgroud)

这是代码:

if ((isset($_POST['key'])) && (isset($_POST['days']))) {

  $key = mysql_escape_string($_POST['key']);
  $days = mysql_escape_string($_POST['days'] * 86400);

  $add = "INSERT INTO licence
  (key,time)
  VALUES
  ('$key','$days')";

  $addkey = mysql_query($add);
}
Run Code Online (Sandbox Code Playgroud)

php mysql sql sql-insert

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

C#语法错误 - INSERT INTO语句.访问数据库.

这是我的代码,我在我的INSERT statementfor中遇到语法错误:

string strSql = "INSERT INTO Responses (OCR, DeadlineDate, OCR Title) VALUES ('"+textBox5.Text+"','"+textBox7.Text+"', '"+textBox6.Text+"')";

OleDbConnection newConn = new OleDbConnection(strProvider);
OleDbCommand dbCmd = new OleDbCommand(strSql, newConn);

newConn.Open();
dbCmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# syntax ms-access insert sql-insert

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

在单个SQL语句中插入列表中的值

我有一个包含值的列表.我想使用单个INSERT语句在SQL表中插入这些值.

示例:说,有一个包含名称的列表(列表的大小不是常量).有一个列的STUDENTSNAME.我想STUDENTS使用单个INSERT语句在表中插入名称.

现在我循环遍历列表并在表中插入值.这意味着,insert语句的数量等于列表的长度.

List<String> Name;
foreach (String s in Name)
{
  INSERT INTO STUDENTS (NAME) VALUES (s)
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在单个SQL INSERT语句中完成此操作?任何帮助深表感谢.

sql vb6 sql-insert

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

SQLite - INSERT INTO SELECT - 如何插入"将3个现有表连接到新表中"的数据?

所以这里的场景是,我在数据库中有4个表:

  1. "question_info":
    CREATE TABLE question_info ( q_id mediumint(9) NOT NULL, q_type_id int(11) NOT NULL, q_options_id mediumint(9) NOT NULL, q_category_id int(11) NOT NULL, q_text varchar(2048) NOT NULL, status tinyint(4) NOT NULL DEFAULT '0', q_date_added date NOT NULL DEFAULT '2013-01-01', q_difficulty_level tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY(q_id) );

  2. "question_options_info":
    CREATE TABLE question_options_info ( q_options_id mediumint(9) NOT NULL, q_options_1 varchar(255) NOT NULL, q_options_2 varchar(255) NOT NULL, q_options_3 varchar(255) NOT NULL, q_options_4 varchar(255) NOT NULL, q_options_ex_1 varchar(1024) DEFAULT NULL, q_options_ex_2 varchar(1024) DEFAULT NULL, …

sql database sqlite sql-insert

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

如果值存在则更新,否则在数据库中插入值

我有一个问题,如果我的4中的值textbox- 房间类型,房间类型,费率,额外费用; 如果数据库中存在"房间类型",则更新,如果不存在,则插入到数据库.

public void existRoomType()
{
    con.Open();
    string typetable = "tblRoomType";
    string existquery = "SELECT*FROM tblRoomType WHERE RoomType = '" + txtRoomType.Text + "'";
    da = new SqlDataAdapter(existquery, con);
    da.Fill(ds, typetable);
    int counter = 0;
    if (counter < ds.Tables[typetable].Rows.Count)
    {
        cmd.Connection = con;
        string edittypequery = "UPDATE tblRoomType SET RoomType = '" + txtRoomType.Text + "', RoomRate = '" + txtRateOfRoom.Text + "', ExtraCharge = '" + txtExtraCharge.Text + "', CancelFee = '" + txtCancelFee.Text + "', …
Run Code Online (Sandbox Code Playgroud)

c# sql-server if-statement sql-update sql-insert

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

存储过程不会插入数据

我对SQL Server存储过程感到困惑,它应该将用户注册到数据库中(如果用户尚未存在).但是,在成功执行该过程后,没有数据插入到Users表中.

如果我直接运行insert语句,它可以工作.

下面是完整的程序代码,在你问我之前,数据库是空的.

--USERS
CREATE PROCEDURE [dbo].[RegisterUser]
  @NAME VARCHAR(255),
  @PHONENUMBER VARCHAR(255),
  @STATUS INT OUT,
  @REMAININGDAYS INT OUT
AS
BEGIN
    SET NOCOUNT ON;

    UPDATE Users WITH (serializable) 
    SET Name = @NAME
    WHERE PhoneNumber LIKE @PHONENUMBER

    SET @REMAININGDAYS = 0

    IF @@rowcount = 0
    BEGIN
        INSERT INTO Users (Name, PhoneNumber, RegisterDate) 
        VALUES (@NAME, @PHONENUMBER, GETDATE())

        SET @STATUS = 0
        SET @REMAININGDAYS = 40
    END
    ELSE
    BEGIN
         DECLARE @USERID BIGINT
         DECLARE @EXP DATETIME

         SELECT TOP 1 
             @USERID = USERID 
         FROM …
Run Code Online (Sandbox Code Playgroud)

sql sql-server stored-procedures sql-insert

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

在SQL中插入多行?

我有WindowTable以及以下数据:

SELECT  Id FROM WindowTable WHERE OwnerRef=12

 Id
----
25000
25001
25003
25004
25005
25006
25007
25008
Run Code Online (Sandbox Code Playgroud)

我想在ActionTable中为每个WindowTable行插入3行像这样:

Id    WindowsRef     ActionName     ActionName2     

-----------------------------------------------
1       25000          'Add'          'E'
2       25000          'DELETE'       'H'
3       25000          'UPDATE'       'B'  
4       25001          'ADD'          'E'
5       25001          'DELETE'       'H' 
6       25001          'Update'       'B'
.         .              .
.         .              .
Run Code Online (Sandbox Code Playgroud)

ActionTable.Id不是标识列

t-sql sql-server sql-insert

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

无法插入行并获取外键约束失败错误

我有下表:

CREATE TABLE IF NOT EXISTS profile_claim_ruling_tasks (
    profile_claim_ruling_task_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    account_id BIGINT UNSIGNED NOT NULL,
    profile_id BIGINT UNSIGNED NOT NULL,
    admin_task_status_id BIGINT UNSIGNED NOT NULL,
    profile_claim_ruling_task_ref_id VARCHAR(36) NOT NULL,
    profile_claim_ruling_task_requested_at DATETIME NOT NULL,

    CONSTRAINT pk_profile_claim_ruling_tasks PRIMARY KEY (profile_claim_ruling_task_id),
    CONSTRAINT fk_profile_claim_ruling_task_account_id FOREIGN KEY (account_id) REFERENCES accounts (account_id),
    CONSTRAINT fk_profile_claim_ruling_task_profile_id FOREIGN KEY (profile_id) REFERENCES accounts (profile_id),
    CONSTRAINT fk_profile_claim_ruling_task_admin_task_status_id FOREIGN KEY (admin_task_status_id) REFERENCES admin_task_statuses (admin_task_status_id),

    INDEX idx_profile_claim_ruling_tasks_admin_task_status_id(admin_task_status_id),

    CONSTRAINT uc_profile_claim_ruling_tasks_profile_claim_ruling_tasks_ref_id UNIQUE (profile_claim_ruling_task_ref_id)
);
Run Code Online (Sandbox Code Playgroud)

当我进行以下操作SELECT *accounts

+------------+--------------------------------------+------------+ …
Run Code Online (Sandbox Code Playgroud)

mysql sql foreign-keys sql-insert

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