我收到的错误是“#34; [geom-type或SRID不允许]"对于几何列,但我确信I' m插入的值对于类型和SR是有效的。我注意到如果我删除表并使用相同的值SQL再次重新创建它,我不再收到错误。例如,在下面的查询中,我得到了第二个DROP / CREATE / AddGeometryColumn注释掉的错误,但是如果我取消注释它则不会。
DROP TABLE IF EXISTS test;
CREATE TABLE test (Value double);
SELECT AddGeometryColumn('test', 'SHAPE', 32615, 'LINESTRING');
--DROP TABLE IF EXISTS test;
--CREATE TABLE test (Value double);
--SELECT AddGeometryColumn('test', 'SHAPE', 32615, 'LINESTRING');
INSERT INTO test VALUES (46.71864700317383, GeomFromText('LINESTRING (701268.032645698 3675362.29477,701268.032645698 3675364.29728502,701265.122816664 3675368.30231507,701264.28479163 3675368.86824025,701261.045560283 3675372.30734512,701260.272152777 3675372.78885241,701256.259513924 3675375.65843502,701255.162166084 3675376.31237516,701252.246875071 3675377.76809262,701248.234236219 3675378.84164383,701244.221597366 3675378.58692897,701240.208958513 3675376.3929278,701240.119712612 3675376.31237516,701236.663233482 3675372.30734512,701236.19631966 3675371.17638664,701234.972864821 3675368.30231507,701234.36868546 3675364.29728502,701234.36868546 3675362.29477)'))
https://www.screencast.com/t/1aP4rXEdhap
这是预期的行为吗?
答案 0 :(得分:1)
发现问题..第二个AddGeometryColumn
调用没有将验证触发器添加到表中,这就是它似乎有用的原因。真正的解决方法是将SRID作为GeomFromText
的第二个参数。