免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4061 | 回复: 5
打印 上一主题 下一主题

请问如何判断一个表是否在数据库中存在啊! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-20 13:39 |只看该作者 |倒序浏览
我要在unix里用shell编程,判断一个表是否在数据库中存在,存在的话把数据存放到表里。表不存在的话,则要建立表,然后把数据存放到表里。
请问如何判断一个表是否在数据库中存在啊,并把结果返回给shel中的变量,以便用于判断啊?l

有劳各位高手了!谢谢!

论坛徽章:
0
2 [报告]
发表于 2005-12-20 14:00 |只看该作者
TableExists=`dbaccess dbname<< EOF 2>/dev/null
output to pipe "cat" without headings
select count(*) from systables where
tabname ='tt'
and tabtype = 'T'
EOF`
if [ $TableExists = 1 ]
then
        echo "Table tt exists ." $TableExists > aa
else
        echo "Table tt doesn't exist ." $TableExists > aa
fi

论坛徽章:
0
3 [报告]
发表于 2005-12-20 14:14 |只看该作者
wenlq ,真是高手啊!
问题解决,谢谢!

论坛徽章:
0
4 [报告]
发表于 2006-01-22 22:50 |只看该作者
请问大师:
(1)output to pipe "cat" without headings 这句是什么意思?
(2)在某些应用中select取得的数据可能有多个, 如何将select取得的一组数据存入shell变量中?

[ 本帖最后由 自由男人 于 2006-1-22 22:53 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2006-01-23 09:17 |只看该作者
1. OUTPUT TO {"file-name" | PIPE "program-name"}
        [WITHOUT HEADINGS] SELECT-statement
2. 用awk 等来处理很方便

a1=`dbaccess dbname << EOF  2>/dev/null
output to pipe "cat" without headings
select tabid from systables
where tabid < 10
order by 1
EOF`
echo $a1
echo $a1| awk '{print $2}'

论坛徽章:
0
6 [报告]
发表于 2006-01-27 22:11 |只看该作者
楼上真的很强。我也出个比较弱的方法,你可以每次都尝试建表,根据返回码来判断
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP