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. python操作上级子文件

    . └── folder ├── data │ └── data.txt └── test1 └── test2 └── test.py import os '***获取当前目录***'print o ...

  2. 离线下载pip包进行安装【转】

    Host-A 不能上网,但是需要在上面安装Python-package 通过另外一台能上网的Host-B主机 1. 下载需要离线安装的Packages 在Host-B上执行如下命令: 安装单个Pack ...

  3. [转载]Windows服务编写原理及探讨(2)

    (二)对服务的深入讨论之上 上一章其实只是概括性的介绍,下面开始才是真正的细节所在.在进入点函数里面要完成ServiceMain的初始化,准确点说是初始化一个 SERVICE_TABLE_ENTRY结 ...

  4. .Net Core 部署到 CentOS7 64 位系统中的步骤

    建议使用 root 管理员账户操作 1.安装工具 1.apache 2..Net Core(dotnet-sdk-2.0) 3.Supervisor(进程管理工具,目的是服务器一开机就启动服务器 上发 ...

  5. JAVA(一)变量

    public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(" ...

  6. Numpy narray对象的属性分析

    参考官方文档链接: narray是Numpy的基本数据结构,本文主要分析对象的属性(可通过.进行访问) 1:导入numpy: import numpy as np 2:初始化narray对象: > ...

  7. jmeter------reponse报错”Unknown column 'XXXXX' in 'where clause'“

    一.问题描述 jmeter添加了与数据库mysql的连接,编写完JDBC Request之后,运行提示报错”Unknown column 'be7f5b6e750bb6becf855386338644 ...

  8. naive cube implementation in python

    这篇论文中提到的naive cube算法的实现,python写出来真的就和伪代码差不多=.= 输入大约长这样,依次是 index userid country state city topic cat ...

  9. fastdfs5.11+centos7.2 按照部署(一)【转载】

    1.绪论 最近要用到fastDFS,所以自己研究了一下,在搭建FastDFS的过程中遇到过很多的问题,为了能帮忙到以后搭建FastDFS的同学,少走弯路,与大家分享一下.FastDFS的作者淘宝资深架 ...

  10. copy深浅拷贝

    我们在很多方法里都看到copy()方法,这是对变量的复制,赋值,下面来看一下实例: 复制方法调用的是copy模块中的方法: import copy copy.copy()         #前拷贝 c ...