gpt4 book ai didi

php - 需要简单 sql 的帮助来添加记录

转载 作者:行者123 更新时间:2023-11-29 12:13:50 25 4
gpt4 key购买 nike

我们使用(INSERT INTO)在表中插入一条记录,再次使用时会创建多个记录。有没有办法添加一条记录并交替替换前一条记录而不添加任何新记录。我知道这会起作用:

UPDATE Customers
SET ContactName='Alfred Schmidt', City='Hamburg'
WHERE CustomerName='Alfreds Futterkiste';

但是如果没有条件呢?我们不知道记录,我们只知道列名。有没有办法只填充一条记录并交替替换前一条记录而不创建第二条记录?

最佳答案

好的...如果记录存在则更新,或者如果记录为零则创建记录是一件非常简单的事情,并且您有一个解决方案。话虽这么说,我会做一些不同的事情并按日期跟踪我每天的消息:

-- This is REALLY BASIC, but, just to give you the idea...
CREATE TABLE [dbo].[MessageOfTheDay](
[MessageDate] [date] not null,
[MessageContents] [nvarchar](500) not null,
UNIQUE (MessageDate)
)

declare @MessageContents nvarchar(500), @MessageDate date
set @MessageContents = 'This is the new MOTD!!!'
set @MessageDate = GETDATE()

-- Every day, create a new record and you can keep track of previous MOTD entries...
insert into MessageOfTheDay(MessageDate, MessageContents)
values (@MessageDate, @MessageContents)

-- Get the message for today
select MessageContents from MessageOfTheDay where MessageDate = @MessageDate

-- If you want, you can now create messages for FUTURE days as well:
set @MessageContents = 'This is tomorrow''s MOTD!!!';
set @MessageDate = dateadd(D, 1,GETDATE())

insert into MessageOfTheDay(MessageDate, MessageContents)
values (@MessageDate, @MessageContents)

-- Get tomorrow's message
select MessageContents from MessageOfTheDay where MessageDate = @MessageDate

-- If you aren't necessarily going to have one per day and want to always just show the most recent entry
select MessageContents from MessageOfTheDay order by MessageDate desc limit 1

无论如何,这只是我的 0.02 美元。我敢打赌,在某个时候,您会想查看一下 MOTD 的历史,当您这样做时,您会很高兴拥有这段历史。另外,这可以更准确地对您尝试表示的数据进行建模。

关于php - 需要简单 sql 的帮助来添加记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com