我在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?
以下是查询.在master与masternew表应该是相同的结构.
--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) 我创建了一个存储过程,它有两个语句insert和update.
它有两个参数:
@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) 我从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) 这是我的代码,我在我的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)
有任何想法吗?
我有一个包含值的列表.我想使用单个INSERT语句在SQL表中插入这些值.
示例:说,有一个包含名称的列表(列表的大小不是常量).有一个列的STUDENTS表NAME.我想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语句中完成此操作?任何帮助深表感谢.
所以这里的场景是,我在数据库中有4个表:
"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)
);
"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, …
我有一个问题,如果我的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) 我对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) 我有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不是标识列
我有下表:
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) sql-insert ×10
sql ×5
sql-server ×4
c# ×2
mysql ×2
sql-update ×2
database ×1
foreign-keys ×1
if-statement ×1
insert ×1
left-join ×1
ms-access ×1
php ×1
postgresql ×1
sqlite ×1
syntax ×1
t-sql ×1
vb6 ×1