簡體   English   中英

SQL不更新表也將舊表添加到新表

[英]SQL not updating table also adding old table to new one

這是我第一次使用SQL,但我遵循了語法,但是沒有用。

use cw312;
CREATE TABLE pet (
name VARCHAR(20),
owner VARCHAR(20),
species VARCHAR(20),
sex CHAR(1),
birth DATE,
death DATE
);
Insert into pet values ('Fluffy','Harold','cat','f','1993-03-04',NULL),
('Claws','Gwen','cat','m','1994-03-17',NULL),
('Buffy','Harold','dog','f','1989-05-13',NULL),('Fang','Benny','dog','m','1990-08-      27',NULL),
('Bowser','Diane','dog','m','1998-08-31','1999-07-11'),
('Chirpy','Gwen','bird','f','1998-09-11',NULL),
('Whistler','Gwen','bird','f','1997-12-09',NULL),
('Slim','Benny','snake','m','1996-04-29',NULL),
('Puffball','Diane','hamster','f','1999-03-30',NULL),
('Daddy', 'Jennifer', 'dog', 'm', '1970-03-30', NULL),
('Major', 'Margaret','cat', 'm', '1993-03-30','2000-04-30');

UPDATE pet SET species = 'dog'
WHERE owner = 'Margaret';




DESCRIBE pet;
SELECT 
  *
FROM
pet;

為什么更新寵物集的物種=狗,而所有者=瑪格麗特卻不更新狗的品種?

同樣,每次執行此命令時,sql都會重新制作數據庫並將其添加到我的先前版本中。

創建表並插入數據后,除非您明確刪除它,否則它將保留在那里。

做一個承諾; 更新(和插入)后,然后從pet;中選擇*。

不要重新運行create table或insert語句...

為了避免重復創建表,這樣做會有所幫助

CREATE TABLE IF NOT EXISTS pet
..

您的初始化代碼實際上應該在一個單獨的文件中,因為每次您運行該腳本時,CREATE語句都會失敗,但是INSERT將一次又一次地成功。 另外,您的桌子可以使用唯一的標識符來確保不會混淆2個名為“蓬松”的寵物。

另外,如果您確實要清除表,請在創建后添加TRUNCATE TABLE命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM