相关疑难解决方法(0)

检查是否存在行,否则插入

我需要编写一个T-SQL存储过程来更新表中的行.如果该行不存在,请插入它.所有这些步骤都由事务包装.

这是一个预订系统,所以它必须是原子和可靠的.如果交易已提交且预订航班,则必须返回true.

我是T-SQL的新手,不知道如何使用@@rowcount.这是我到现在为止所写的.我在正确的道路上吗?我确信这对你来说很容易.

-- BEGIN TRANSACTION (HOW TO DO?)

UPDATE Bookings
 SET TicketsBooked = TicketsBooked + @TicketsToBook
 WHERE FlightId = @Id AND TicketsMax < (TicketsBooked + @TicketsToBook)

-- Here I need to insert only if the row doesn't exists.
-- If the row exists but the condition TicketsMax is violated, I must not insert 
-- the row and return FALSE

IF @@ROWCOUNT = 0 
BEGIN

 INSERT INTO Bookings ... (omitted)

END

-- END TRANSACTION …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2008

226
推荐指数
5
解决办法
48万
查看次数

MySQL条件插入

我很难形成条件INSERT

我有x_table与列(实例,用户,项),其中实例ID是唯一的.我想仅在用户已经没有给定项目时才插入新行.

例如,尝试插入instance = 919191 user = 123 item = 456

Insert into x_table (instance, user, item) values (919191, 123, 456) 
    ONLY IF there are no rows where user=123 and item=456 
Run Code Online (Sandbox Code Playgroud)

任何有关正确方向的帮助或指导都将非常感激.

mysql conditional insert

94
推荐指数
4
解决办法
8万
查看次数

SQL查询 - INSERT,但仅限于记录尚不存在?

所以,我正在编写一个SQL查询,就像你一样,我偶然发现了一个问题.我想要做的是每次唯一用户访问某个页面时在数据库中触发查询.唯一性是通过session_id()完成的,因为它通常非常可靠.

我想要的是一个SQL查询,它将一行数据插入两列,但只有这两列不具有相同的值.

如果用户x访问了名为的页面page1,那么在数据库中,它将记录如下所示:

+------------+---------+
| page_name  | user_id |
+------------+---------+
|    page1   |    x    |
+------------+---------+
Run Code Online (Sandbox Code Playgroud)

我将如何编写一个检查表的查询,以查看插入的数据是否重复?

我当前的查询如下(它只是一个标准的插入查询):

INSERT INTO `page_views` (`page_name`, `user_id`) VALUES ('.$pageName.', \''.session_id().'\')
Run Code Online (Sandbox Code Playgroud)

php mysql

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

标签 统计

mysql ×2

conditional ×1

insert ×1

php ×1

sql ×1

sql-server ×1

sql-server-2008 ×1

t-sql ×1