Pylons Controller里面执行修改数据库表,总是不成功。

然后通过各种手段:

1、js打印返回值

2、不修改表单提交和修改表单提交,结果比较;

3、通过在Pylons Controller里面设置不同位置return;

4、打印传递的各种参数;

5、等等方法。。。

最终确认是Session.commit()的问题。

来看看系统log:

15:23:52,650 INFO  [sqlalchemy.engine.base.Engine] [worker 8]SELECT datatables.id AS datatables_id, datatables.type AS datatables_type, datatables.key_list AS datatables_key_list, datatables.name AS datatables_name, datatables.display AS datatables_display, datatables.home_visible AS datatables_home_visible, datatables.merge AS datatables_merge, datatables.bigtype AS datatables_bigtype 
FROM data_schemas 
WHERE datatables.id = %s 
 LIMIT %s
15:23:52,650 INFO  [sqlalchemy.engine.base.Engine] [worker 8] (14, 1)
15:23:52,653 INFO  [sqlalchemy.engine.base.Engine] [worker 8] UPDATE datatables SET merge=%s WHERE datatables.id = %s
15:23:52,653 INFO  [sqlalchemy.engine.base.Engine] [worker 8] (0, 14L)
15:23:52,654 INFO  [sqlalchemy.engine.base.Engine] [worker 8] ROLLBACK

可以看出已经Update了,然后,艹,又ROLLBACK了!!!

再通过Firebug看看网页给出的提示:

WebError Traceback:

⇝OperationalError: (OperationalError) (1142, "UPDATE command denied to user 'user@uuu'@'10.10.10.10' for table 'datatables'") 'UPDATE datatables SET merge=%s WHERE datatables.id = %s' (0, 14L)

什么叫做denied to user!!!

明明就我所在的用户就没有写权限啊,没有写权限啊,写权限啊,权限啊。。。

DBA给一个没有写权限的用户搞个毛线啊。。。还要找DBA。。。

这个世界是如此的不靠谱啊。。。

Pylons Controller里面Session.commit()总是出现rollback的更多相关文章

  1. SQL事务用法begin tran,commit tran和rollback tran的用法

    Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务. begin tran表示开始事务, commit tran表示提交 ...

  2. 【转】【SQLServer】SQL事务用法begin tran,commit tran和rollback tran的用法

    Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务.begin tran表示开始事务, commit tran表示提交事 ...

  3. SQL 事务 begin tran、commit tran、rollback tran 的用法

    首先理解一下这三个事务的大概意思: begin Transaction 可以理解成新建一个还原点. commit Transaction 提交这个自begin tran开始的修改 rollback T ...

  4. AMQ学习笔记 - 06. 可靠消息传送

    概述 本文介绍JMS中可能发生消息故障的3个隐患阶段,以及确保消息安全的3种保障机制. 故障分析 在介绍可靠传送的确保机制之前,先分析消息在传送的过程中可能在哪个阶段出现问题. 1.两个跃点 跃点的含 ...

  5. activemq p2p方式

    package ch02.chat; import java.io.Serializable; import javax.jms.Connection; import javax.jms.Connec ...

  6. 简单的activemq的封装和使用

    天空中飘着小雨,实在是适合写代码的时节. 1 package ch02.chat; import java.io.Serializable; import javax.jms.Connection; ...

  7. sqlalchemy ORM模块使用介绍

    前几天用到了flask框架,所以顺带介绍了flask-sqlalchemy扩展模块,去瞄一眼,由于有好多非web的python程序也用到了数据库,所以今天分享一下sqlalchemy的模块的使用方法. ...

  8. sqlalchemy学习-- 重要参数

    Base = declarative_base 基类: 1.存储表 2.建立class-Table 的映射关系 engine = create_engine('mysql://root:root@lo ...

  9. SQLAlchemy--基本增删改查

    目录 简介 安装 组成部分 简单使用 执行原生sql(不常用) orm使用(重点) 常用数据类型 Column常用参数 常用操作(CURD) 创建映射类的实例 创建会话Session 增加add()/ ...

随机推荐

  1. 在Perl中使用Getopt::Long模块来接收用户命令行参数

    我们在linux常常用到一个程序需要加入参数,现在了解一下perl中的有关控制参数的函数.getopt.在linux有的参数有二种形式.一种是–help,另一种是-h.也就是-和–的分别.–表示完整参 ...

  2. 安装完ODTwithODAC112012,出现ORA-12560:TNS:协议适配器错误

    参考:http://blog.csdn.net/tan_yixiu/article/details/6762357 操作系统:windows2008 Enterprise 64位 开发工具:VS201 ...

  3. 「caffe编译bug」python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: No such file or directory

    在Makefile.config找到PYTHON_INCLUDE,发现有点不同: PYTHON_INCLUDE := /usr/include/python2.7 \         /usr/lib ...

  4. mac 卸载 node并重新安装

    系统升级到 Sierra 之后,npm 经常出问题,最终把 node 卸载了,安装了新版本.mac 卸载 node 比较麻烦,stackoverflow 上面找到一个方法还不错,特地记录下来,代码如下 ...

  5. fprintf输出到文件中,sprintf输出到字符串中. 如: fprintf(fp,"%s",name); fp为文件指针 sprintf(buff,"%s",name); buff为字符数组

    fprintf输出到文件中,sprintf输出到字符串中. 如: fprintf(fp,"%s",name); fp为文件指针 sprintf(buff,"%s" ...

  6. beego orm操作mysql数据库

    慢慢弄起来~~ 按官方操作文档试一下. 那个err重复和user编号问题,以后再弄.. package main import ( "fmt" "github.com/a ...

  7. codeforce 1A Theatre Square

    A. Theatre Square Theatre Square in the capital city of Berland has a rectangular shape with the siz ...

  8. bzoj 1100

    思路:好脑洞啊... 把边和角转化为字符串,然后用反串跑kmp... #include<bits/stdc++.h> #define LL long long #define fi fir ...

  9. 微软企业库5.0 学习之路——第九步、使用PolicyInjection模块进行AOP—PART4——建立自定义Call Handler实现用户操作日志记录

    在前面的Part3中, 我介绍Policy Injection模块中内置的Call Handler的使用方法,今天则继续介绍Call Handler——Custom Call Handler,通过建立 ...

  10. c#多线程实现函数同步运行

    我们假设有方法run1()和run2(),耗时都比较大,实现他们同步运行将大大提高程序的效率,在这里考虑使用多线程的方法. 首先添加引用,定义bool型i,j为false. using System. ...