更新web

This commit is contained in:
lsy2246 2024-05-14 12:11:10 +08:00
parent 0da5a9be5f
commit 1405693261
3 changed files with 144 additions and 0 deletions

Binary file not shown.

102
SQL_SERVER/Chat.sql Normal file
View File

@ -0,0 +1,102 @@
CREATE LOGIN Chat
WITH PASSWORD = '123456';
GO
DROP DATABASE Chat;
GO
CREATE DATABASE Chat;
GO
USE Chat;
GO
CREATE USER Chat
FOR LOGIN Chat;
GO
ALTER ROLE db_owner ADD MEMBER Chat;
GO
CREATE TABLE Account
(
Id BIGINT PRIMARY KEY IDENTITY(1000,1),
Password VARCHAR(50) not null,
NetName NVARCHAR(50) ,
State BIT default 0 CHECK(State=1 or State=0),
UpDataTime datetime default GETDATE()
)
GO
CREATE TABLE Contacts
(
UserId BIGINT REFERENCES Account(Id) not null ,
ContactsId BIGINT REFERENCES Account(Id) not null,
State BIT default 0 CHECK(State=1 or State=0),
Remark NVARCHAR(50),
UpDataTime datetime default GETDATE()
)
GO
CREATE TABLE History
(
Send BIGINT REFERENCES Account(Id) NOT NULL,
Receive BIGINT REFERENCES Account(Id) NOT NULL,
Type NVARCHAR(50) NOT NULL,
Content NVARCHAR(200) NOT NULL,
Time DATETIME DEFAULT GETDATE()
)
GO
-- Account表的更新触发器
CREATE TRIGGER trg_UpdateUpDataTimeAccount
ON Account
AFTER INSERT, UPDATE, DELETE
AS
BEGIN
SET NOCOUNT ON;
UPDATE Account
SET UpDataTime = GETDATE()
WHERE Id IN (SELECT Id FROM inserted UNION SELECT Id FROM deleted);
END;
GO
-- Contacts表的更新触发器
CREATE TRIGGER trg_UpdateUpDataTimeContacts
ON Contacts
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
-- 更新Account表中的UpDataTime字段仅在Contacts相关记录发生插入或更新时
UPDATE Account
SET UpDataTime = GETDATE()
WHERE Id IN (SELECT UserId FROM inserted)
OR Id IN (SELECT ContactsId FROM inserted);
-- 更新Contacts表的Remark列为对应ContactsId的NetName
UPDATE Contacts
SET Remark = (SELECT NetName FROM Account WHERE Id = ContactsId)
WHERE ContactsId IN (SELECT ContactsId FROM inserted)
OR ContactsId IN (SELECT ContactsId FROM deleted);
END;
GO
-- History表的更新触发器
CREATE TRIGGER trg_UpdateUpDataTimeHistory
ON History
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
-- 仅更新Account表中发送者和接收者的UpDataTime字段
UPDATE Account
SET UpDataTime = GETDATE()
WHERE Id IN (SELECT Send FROM inserted)
OR Id IN (SELECT Receive FROM inserted);
END;
GO

42
SQL_SERVER/bank.sql Normal file
View File

@ -0,0 +1,42 @@
CREATE DATABASE BANKSYSTEM;
USE BANKSYSTEM;
CREATE TABLE AccountInfo
(
AccountId INT PRIMARY KEY IDENTITY (1,1),
NetName NVARCHAR(50) NOT NULL,
Password NVARCHAR(50) NOT NULL,
Name NVARCHAR(5) NOT NULL,
IdCard VARCHAR(18) UNIQUE NOT NULL,
OpenTime datetime default getdate()
)
CREATE TABLE State
(
StateId INT PRIMARY KEY,
Name VARCHAR(50) unique not null
)
CREATE TABLE BankCard
(
Id VARCHAR(18) PRIMARY KEY,
Password VARCHAR(6) NOT NULL,
Money money default 0 check (Money >= 0),
OpenTime smalldatetime default getdate(),
AccountId INT REFERENCES AccountInfo (AccountId),
StateId INT REFERENCES State (StateId) DEFAULT 1,
WhyState NVARCHAR(50)
)
CREATE TABLE Bill
(
Id INT PRIMARY KEY IDENTITY (1,1),
BankId VARCHAR(18) REFERENCES BankCard (Id) NOT NULL,
Money money default 0,
Source VARCHAR(50) NOT NULL,
Mod VARCHAR(10) NOT NULL CHECK (Mod = 'Input' OR Mod = 'Output'),
State VARCHAR(10) NOT NULL CHECK (State = 'True' or State = 'False'),
Time datetime default getdate()
)