ALTER TABLE READ_ONLY 测试

-- READ ONLY

点击(此处)折叠或打开

  1. ALTER TABLE schema.table READ ONLY;
  2. ALTER TABLE schema.table READ WRITE;
-- 测试

点击(此处)折叠或打开

  1. EODA@BLACKBOX> SELECT TABLE_NAME, READ_ONLY FROM USER_TABLES;
  2.         
  3. TABLE_NAME                     READ_ONLY
  4. ------------------------------ ----------
  5. RUN_STATS                      NO
  6. SALGRADE                       NO
  7. BONUS                          NO
  8. DEPT                           NO
  9. TEST                           NO
  10. T3                             NO
  11. T2                             NO
  12. T1                             NO
  13. BIG_TABLE                      NO

  14.         
  15. 10 rows selected.
  16.         
  17. EODA@BLACKBOX> ALTER TABLE EMP READ ONLY;
  18.         
  19. Table altered.
  20.         
  21. EODA@BLACKBOX> SELECT TABLE_NAME, READ_ONLY FROM USER_TABLES;
  22.         
  23. TABLE_NAME                              READ_ONLY
  24. ------------------------------ ----------
  25. RUN_STATS                      NO
  26. SALGRADE                       NO
  27. BONUS                          NO
  28. DEPT                           NO
  29. EMP                            YES
  30. TEST                           NO
  31. T3                             NO
  32. T2                             NO
  33. T1                             NO
  34. BIG_TABLE                      NO
  35.         
  36. 10 rows selected.

-- 增删改操作

点击(此处)折叠或打开

  1. EODA@BLACKBOX> UPDATE EMP SET SAL = SAL + 200 WHERE EMPNO = 7369;
  2. UPDATE EMP SET SAL = SAL + 200 WHERE EMPNO = 7369
  3. *
  4. ERROR at line 1:
  5. ORA-12081: update operation not allowed on table "EODA"."EMP"
  6.         
  7. EODA@BLACKBOX> INSERT INTO EMP SELECT * FROM EMP;
  8. INSERT INTO EMP SELECT * FROM EMP
  9. *
  10. ERROR at line 1:
  11. ORA-12081: update operation not allowed on table "EODA"."EMP"
  12.         
  13. EODA@BLACKBOX> DELETE EMP WHERE EMPNO = 7369;
  14. DELETE EMP WHERE EMPNO = 7369
  15. *
  16. ERROR at line 1:
  17. ORA-12081: update operation not allowed on table "EODA"."EMP"
-- 对表进行DDL操作
     插入一个 column

点击(此处)折叠或打开

  1. EODA@BLACKBOX> ALTER TABLE EMP ADD ID NUMBER(10);
  2. ALTER TABLE EMP ADD ID NUMBER(10)
  3. *
  4. ERROR at line 1:
  5. ORA-12081: update operation not allowed on table "EODA"."EMP"
     修改 column 属性

点击(此处)折叠或打开

  1. EODA@BLACKBOX> DESC EMP
  2.  Name                                                  Null?    Type
  3.  ----------------------------------------------------- -------- ------------------------------------
  4.  EMPNO                                                          NUMBER(4)
  5.  ENAME                                                          VARCHAR2(10)
  6.  JOB                                                            VARCHAR2(9)
  7.  MGR                                                            NUMBER(4)
  8.  HIREDATE                                                       DATE
  9.  SAL                                                            NUMBER(7,2)
  10.  COMM                                                           NUMBER(7,2)
  11.  DEPTNO                                                         NUMBER(2)

  12. EODA@BLACKBOX> ALTER TABLE EMP MODIFY DEPTNO NUMBER(3);
  13. ALTER TABLE EMP MODIFY DEPTNO NUMBER(3)
  14. *
  15. ERROR at line 1:
  16. ORA-12081: update operation not allowed on table "EODA"."EMP"
-- 表删除动作

点击(此处)折叠或打开

  1. EODA@BLACKBOX> drop table emp purge;
  2.         
  3. Table dropped.
-- 改回读写状态

点击(此处)折叠或打开

  1. EODA@BLACKBOX> ALTER TABLE EMP READ WRITE;
  2.         
  3. Table altered.
  4.         
  5. EODA@BLACKBOX> UPDATE EMP SET SAL = SAL + 200 WHERE EMPNO = 7369;
  6.         
  7. 1 row updated.
/*
通过测试得出结论
当表的READ_ONLY字段值为YES时,表只可以查询,不可以增删改表中数据,不可以对表结构进行更改
可以直接对表删除
*/




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31369239/viewspace-2122185/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31369239/viewspace-2122185/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import pandas as pd import pymysql # 连接到数据库 conn = pymysql.connect(host='localhost', user='user', password='password', database='database') # 获取所有表格的名称 cursor = conn.cursor() cursor.execute("SHOW TABLES") tables = cursor.fetchall() # 遍历所有表格 for table in tables: table_name = table[0] table_name_quoted = '' + table_name + '' # 检查是否存在名为'a'的列,如果不存在则添加'a'和'b'列 cursor.execute("SHOW COLUMNS FROM " + table_name_quoted + " LIKE 'a'") a_column = cursor.fetchone() if a_column is None: cursor.execute("ALTER TABLE " + table_name_quoted + " ADD COLUMN a DECIMAL(10,2)") cursor.execute("ALTER TABLE " + table_name_quoted + " ADD COLUMN b DECIMAL(10,2)") conn.commit() # 查询net_mf_amount列的数据 query = "SELECT trade_date, net_mf_amount FROM " + table_name_quoted + " ORDER BY trade_date DESC" df = pd.read_sql_query(query, conn) # 计算a和b列 a_column = [] b_column = [] for i in range(len(df)): if i == 0: a_column.append(None) b_column.append(None) else: if pd.notnull(df.iloc[i]['net_mf_amount']) and pd.notnull(df.iloc[i-1]['net_mf_amount']): if i-2 >= 0: if pd.notnull(df.iloc[i-2]['net_mf_amount']): a = df.iloc[i]['net_mf_amount'] - df.iloc[i-1]['net_mf_amount'] b = df.iloc[i]['net_mf_amount'] - df.iloc[i-2]['net_mf_amount'] a_column.append(a) b_column.append(b) else: j = i-3 while j >= 0: if pd.notnull(df.iloc[j]['net_mf_amount']): a = df.iloc[i]['net_mf_amount'] - df.iloc[i-1]['net_mf_amount'] b = df.iloc[i]['net_mf_amount'] - df.iloc[j]['net_mf_amount'] a_column.append(a) b_column.append(b) break j -= 1 else: a = df.iloc[i]['net_mf_amount'] - df.iloc[i-1]['net_mf_amount'] b = None a_column.append(a) b_column.append(b) else: a_column.append(None) b_column.append(None) # 将结果保存到数据库 for i in range(len(df)): cursor.execute("UPDATE " + table_name_quoted + " SET a=%s, b=%s WHERE trade_date=%s", (a_column[i], b_column[i], df.iloc[i]['trade_date'])) conn.commit() # 关闭连接 cursor.close() conn.close() 报错/Users/ljy/stock/daily_analyse.py:65: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql_query(query, conn)
最新发布
05-27

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值