作为一个没有上过正统大学的大人,现在学真的是靠肌肉记忆了,感觉手跟不上脑袋,不过有所进步总是能刺激自己继续努力的。

本文记录了一个初学者在使用PostgreSQL进行SQL操作时遇到的问题,包括语法错误、事务处理和约束冲突,展示了学习过程中的挑战和常见错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 今天敲的多一些,感觉总是在中英文标识上磕磕绊绊,每一行为了怕学习的不牢固,都是一个字母一个字母的敲出来的,对于打字输入法不好的人来说确实是有点手笨到扭筋,总是按错按键或是按在两个按键的中间,恨不得把自己手剁了,换一个机械手。从一开始是一句错句句错,到小心核对每一行的标点符号,总算可以联系多行不出错了。

不过有个问题希望学习这么语言的前辈指教一下,为什么插入表内容,错一次,第二次就显示“当前处理事务被终止,事务块结束之前的查询被忽略”,我现在想到的笨办法就是\q退出数据库再重新进。

C:\Windows\System32>c:\postgreSQL\9.5\bin\psql.exe -U postgres -d shop
用户 postgres 的口令:
psql (9.5.25)
输入 "help" 来获取帮助信息.

shop=# CREATE TABLE product
shop-# CREATE TABLE product;
错误:  语法错误 在 "CREATE" 或附近的
第2行CREATE TABLE product;
     ^
shop=# CREATE TABLE product;
错误:  语法错误 在 ";" 或附近的
第1行CREATE TABLE product;
                         ^
shop=# CREATE TABLE product;
错误:  语法错误 在 ";" 或附近的
第1行CREATE TABLE product;
                         ^
shop=# CREATE TABLE product;
错误:  语法错误 在 ";" 或附近的
第1行CREATE TABLE product;
                         ^
shop=# CREATE TABLE product
shop-# (product_id CHAR(4) NOT NULL,
shop(# product_name VARCHAR(100) NOT NULL,
shop(# product_type VARCHAR(100) NOT NULL,
shop(# sale_price INTEGER ,
shop(# purchase_type VARCHAR(100) ,
shop(# regist_date DATE,
shop(# PRIMARY KEY (product_id));
CREATE TABLE
shop=# ALTER TABLE product ADD porduct_name_pinyin VARCHAR(100);
ALTER TABLE
shop=# ALTER TABLE product ADD COLUMN porduct_name_pinyin VARCHAR(100);
错误:  关系 "porduct_name_pinyin" 的属性 "product" 已经存在
shop=# ALTER TABLE product DDROP COLUMN [roduct_name_pinyin;
错误:  语法错误 在 "DDROP" 或附近的
第1行ALTER TABLE product DDROP COLUMN [roduct_name_pinyin;
                         ^
shop=# ALTER TABLE product DROP COLUMN [roduct_name_pinyin;
错误:  语法错误 在 "[" 或附近的
第1行ALTER TABLE product DROP COLUMN [roduct_name_pinyin;
                                     ^
shop=# ALTER TABLE product DROP COLUMN product_name_pinyin;
错误:  关系 "product" 的 "product_name_pinyin" 字段不存在
shop=# ALTER TABLE product DROP COLUMN porduct_name_pinyin;
ALTER TABLE
shop=# BEGIN TRANSATION;
错误:  语法错误 在 "TRANSATION" 或附近的
第1行BEGIN TRANSATION;
           ^
shop=# --DML:插入数据
shop=# BEGIN TRANSATION;
错误:  语法错误 在 "TRANSATION" 或附近的
第1行BEGIN TRANSATION;
           ^
shop=# BEGIN TRANSACTION;
BEGIN
shop=# INSERT INFO Product VALUES ('001','T恤衫','衣服',1000,500,'2009-09-20');
错误:  语法错误 在 "INFO" 或附近的
第1行INSERT INFO Product VALUES ('001','T恤衫','衣服',1000,500,'2...
            ^
shop=# INSERT INTO Product VALUES ('001','T恤衫','衣服',1000,500,'2009-09-20');
错误:  当前事务被终止, 事务块结束之前的查询被忽略
shop=# INSERT INTO Product VALUES ('0001','T恤衫','衣服',1000,500, '2009-09-20');
错误:  当前事务被终止, 事务块结束之前的查询被忽略
shop=# BEGIN TRANSACTION;
错误:  当前事务被终止, 事务块结束之前的查询被忽略
shop=# BEGIN TRANSACTION;
错误:  当前事务被终止, 事务块结束之前的查询被忽略
shop=# \q

C:\Windows\System32>c:\postgreSQL\9.5\bin\psql.exe -U postgres -d shop
用户 postgres 的口令:
psql (9.5.25)
输入 "help" 来获取帮助信息.

shop=# BEGIN SECATION
shop-# BEGIN SECATION;
错误:  语法错误 在 "SECATION" 或附近的
第1行BEGIN SECATION
           ^
shop=# BEGIN TRANSACTION;
BEGIN
shop=# INSERT INTO Product VALUES ('0001','T恤衫','衣服',1000.500. '2009-09-20');
错误:  语法错误 在 "." 或附近的
第1行...NTO Product VALUES ('0001','T恤衫','衣服',1000.500. '2009-09...
                                                          ^
shop=# INSERT INTO Product VALUES ('0001','T恤衫','衣服',1000.500, '2009-09-20');
错误:  当前事务被终止, 事务块结束之前的查询被忽略
shop=# \q

C:\Windows\System32>C:\postgreSQL\9.5\bin\psql.exe -U postgres -d shop
用户 postgres 的口令:
psql: 致命错误:  用户 "postgres" Password 认证失败

C:\Windows\System32>BEGIN TRANSACTION;
'BEGIN' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Windows\System32>BEGIN TRANSACTION;
'BEGIN' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Windows\System32>C:\postgreSQL\9.5\bin\psql.exe -U postgres -d shop
用户 postgres 的口令:
psql: 致命错误:  用户 "postgres" Password 认证失败

C:\Windows\System32>C:\postgreSQL\9.5\bin\psql.exe -U postgres -d shop
用户 postgres 的口令:
psql (9.5.25)
输入 "help" 来获取帮助信息.

shop=# BEGIN TRANSACTION;
BEGIN
shop=# INSERT INTO Product VALUES ('0001','T恤衫','衣服',1000,500, '2009-09-20');
INSERT 0 1
shop=# INSERT INTO Product VALUES ('0001','打孔器','办公用品',500,320, '2009-09-11');
错误:  重复键违反唯一约束"product_pkey"
描述:  键值"(product_id)=(0001)" 已经存在
shop=# INSERT INTO Product VALUES ('0002','打孔器','办公用品',500,320, '2009-09-11');
错误:  当前事务被终止, 事务块结束之前的查询被忽略
shop=# \q

C:\Windows\System32>C:\postgreSQL\9.5\bin\psql.exe -U postgres -d shop
用户 postgres 的口令:
psql (9.5.25)
输入 "help" 来获取帮助信息.

shop=# BEGIN TRANSACTION;
BEGIN
shop=# INSERT INTO Product VALUES ('0002','打孔器','办公用品',500.320, '2009-09-11');
INSERT 0 1
shop=# INSERT INTO Product VALUES ('0003','运动T恤','衣服',4000,2800,NULL);
错误:  语法错误 在 "," 或附近的
第1行INSERT INTO Product VALUES ('0003','运动T恤','衣服',4000,28...
                                                 ^
shop=# INSERT INTO Product VALUES ('0003','运动T恤','衣服',4000,2800,NULL);
错误:  当前事务被终止, 事务块结束之前的查询被忽略
shop=# \q

C:\Windows\System32>C:\postgreSQL\9.5\bin\psql.exe -U postgres -d shop
用户 postgres 的口令:
psql (9.5.25)
输入 "help" 来获取帮助信息.

shop=# BEGIN TRANSACTION;
BEGIN
shop=# INSERT INTO Product VALUES ('0003','运动T恤','衣服',4000,2800,NULL);
INSERT 0 1
shop=# INSERT INTO Porduct VALUES ('0004','菜刀','厨房用具',3000,2800,NULL);
错误:  关系 "porduct" 不存在
第1行INSERT INTO Porduct VALUES ('0004','菜刀','厨房用具',3000,28...
                 ^
shop=# INSERT INTO Product VALUES ('0004','菜刀','厨房用具',3000,2800,NULL);
错误:  当前事务被终止, 事务块结束之前的查询被忽略
shop=# \q

C:\Windows\System32>C:\postgreSQL\9.5\bin\psql.exe -U postgres -d shop
用户 postgres 的口令:
psql (9.5.25)
输入 "help" 来获取帮助信息.

shop=# BEGIN TRANSACTION;
BEGIN
shop=# INSERT INTO Product VALUES ('0004','菜刀','厨房用具',3000,2800,'2009-09-20');
INSERT 0 1
shop=# INSERT INTO Product VALUES ('0005','高压锅','厨房用具',6800,5000,'2009-01-05');
INSERT 0 1
shop=# INSERT INTO Product VALUES ('0006','叉子','厨房用具',500,NULL,'2009-09-20');
INSERT 0 1
shop=# INSERT INTO Product VALUES ('0007','擦菜板','厨房用具',880,790,'2008-04-28');
INSERT 0 1
shop=# INSERT INTO Product VALUES ('0008','圆珠笔','办公用品',100,NULL,'2009-11-11');
INSERT 0 1
shop=# COMMIT;
COMMIT
shop=#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值