如题
换句话说,数据库如何实现每天自动产生一张表。
表的格式为DB_20071221
不知道各位高手有无实现的办法。
换句话说,数据库如何实现每天自动产生一张表。
表的格式为DB_20071221
不知道各位高手有无实现的办法。
解决方案 »
- 有一个数据表 一个字段Content,要插入数据量达2-5M的数据,该怎么办?
- mysql创建唯一性索引查询时sqlyog挂掉?
- MySQL中文乱码问题,请帮忙
- MYSQL中查询字段中只包含字母的数据
- 求一个简单的SQL语句
- postgresql 磁盘备份
- 请教:mysql 错误信息10055 是什么错误?
- errot 2003: cannot connect to mysql server on 'localhost' <10061>
- mysql group by 查询的字段如果不用聚合函数,是怎么保留的?
- 计算留存率和留存数的SQL要怎么写呢?
- 这句话错在哪儿啊,MYSQL
- 求高手解决关于MYSQL的查询
我觉得可以这么实现:
写一个.sh脚本,里面的内容是打开数据库,创建表,表名格式为DB_20071221.关闭数据库等.
使用 操作系统自带的Cron 定时,比如说每天10点执行.sh脚本.
不过我觉得如果在数据库中能自己实现那是最好的。
我记得mssql上job的功能能实现,但是postgressql上我就不知道如何做了
也不知道在pgsql上如何实现触发器的功能。
比如说:
CREATE OR REPLACE FUNCTION "funUpdateGlobalInfoTableConfigureTS"()
RETURNS TRIGGER AS
$$
DECLARE
strSysTime TIMESTAMP;
sq interval;
BEGIN
SELECT INTO strSysTime localtimestamp(0);
SELECT INTO sq date_part('timezone_hour',current_timestamp)||'hours';
SELECT INTO strSysTime (strSysTime - sq );
UPDATE "GlobalInfoTable"
SET
"ConfigureTS" = strSysTime;
RETURN NULL;
END;
$$LANGUAGE plpgSQL;
然后在表上创建触发这个函数:
CREATE TRIGGER "triggerManageClientTableC"
AFTER INSERT OR UPDATE OR DELETE ON "ManageClientTable"
FOR EACH STATEMENT EXECUTE PROCEDURE "funUpdateGlobalInfoTableConfigureTS"();
在数据库本身做以我的理解好象是不可以
--建立shell脚本,如下#!/bin/shDATE=`date +%Y%m%d`
CMD="create table DB_$DATE() inherits (DB)"
/usr/local/bin/psql -d icdata -U pgsql -c "$CMD"--每天在crontab里边定时运行就可以建立如下的表了.db_20071230
db_20071229
......