sql问题求教
drupal吧
全部回复
仅看楼主
level 1
Roy__Mustang_ 楼主
我.install文件的代码
function test_install() { drupal_install_schema('test');}
function test_uninstall() { drupal_uninstall_schema('test');}
function test_schema() {$schema['test'] = array( 'description' => 'The base table for nodes.', 'fields' => array( 'userid' => array('type' => 'int', 'not null' => TRUE, 'length'=>11), 'UserAgent' => array('type' => 'text', 'not null' => TRUE), ), 'primary key' => array('userid'),);return $schema;}
第一次加载模块的时候,sql里面没有test这张表。然后我卸载了这个模块,再安装,他跳错误,说这张表已经存在。SQL中突然就出来了这张表,而且再卸载test表就没了,但是再安装还是同样的报错,表已存在,test表也在SQL中莫名其妙出来了。求解决,本人菜鸟。
2013年08月13日 09点08分 1
level 15
你的目的是什么,还是说要听听产生这个错误原因的解释?
2013年08月15日 07点08分 2
我的目的是插表进去不报错,这个错误就是说这张表已经存在了DatabaseSchemaObjectExistsException: Table <em class="placeholder">test</em> already exists. 但是启用模块之前,SQL里面没有这张表的
2013年08月15日 08点08分
level 15
建议直接用SQL Studio 看数据库里有没有TEST表,有可能是例子数据库的表导致的
2013年08月15日 08点08分 3
恩,我改了个表名就好了,应该是和里面自带的没显示的表冲突了
2013年08月16日 05点08分
但是原来的名字的表插入成功了,只是要报已经存在的错误。这个我很不解。而且mysql表的结构就是我插的结构
2013年08月16日 05点08分
原来的情况是表名字是test,第一次启用模块,SQL中没变化。卸载模块,再重新启用,就跳已经存在的错误了。如果是跟原有的表冲突,该怎么解释呢~
2013年08月16日 06点08分
level 15
1.原以为LZ用的是SQL SERVER, 原来用的是MYSQL,所以先前查看数据库工具建议用PhpMyAdmin。
2.个人记得Mysql默认会带有test数据库的例子库在里面的,当然,也有没有这个表存在的情况。
3.如果是模块(Module)问题,不知道LZ在卸载的时候是怎么卸载的呢,DRUPAL模块卸载是有专门页面进行操作的,只是单纯的删除会在数据库中有残留。
4.介于第三点要是操作上没有问题,那么猜测就是此模块在卸载方面没有做好,导致没有成功卸载;当然,也不排除在卸载的时候整体程序出错,比如服务器运行问题导致或者其他可能性的存在。
5.建议卸载模块后清理下运行缓存,DRUPAL里有这个功能。
6.既然解决了问题,那么还是恭喜下LZ吧,这次出现的现象也是一种有益的经历。
2013年08月16日 06点08分 4
嗯嗯嗯,貌似找到问题了,表名跟模块名写的一样会造成这样的冲突,谢谢你的建议~[哈哈]
2013年08月16日 08点08分
1