SQL不更新表也将旧表添加到新表

时间:2014-03-13 14:07:39

标签: mysql sql

这是我第一次使用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都会重新编译数据库并将其添加到我以前的版本中..任何想法为什么?

2 个答案:

答案 0 :(得分:0)

创建表并插入数据后,除非您明确删除它,否则它将保留在那里。

做出承诺;更新后(和插入)然后从宠物中选择*;

不要重新运行create table或insert statement ...

答案 1 :(得分:0)

为避免重复创建表格,这有助于

CREATE TABLE IF NOT EXISTS pet
..

您的初始化代码应该在一个单独的文件中,因为每次运行该脚本时,CREATE语句都会失败,但INSERT会一次又一次地成功。 您的桌子也可以使用唯一的标识符来确保名为“蓬松”的2只宠物不会混淆。

此外,如果您真的要清理表格,请在创建后添加TRUNCATE TABLE命令。