今天我在进行本地测试,进行新建表和添加表主键约束操作时出现了如下错误:
“名称已被一现有约束条件占用”
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 283.5pt; HEIGHT: 190.5pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/vincent/LOCALS~1/Temp/msohtml1/01/clip_image001.png"></imagedata></shape>
后来经检查发现原来,我原来建立的表MEDIA_TEST表中已经有一个名为PK_MEDIA的约束了,将其改名,然后,修改操作就PASS了。
查找约束的方法如下:
(1)查找某表上的约束
select * from user_constraints
where table_name='MEDIA'
(2)
有时想删除一个表上的记录,由于创建的约束比较多,不知道约束在哪个表上,无法删除记录,用CASCADE也不行. 这时就要找到约束所在的表,可以用以下SQL语句查询出约束所在的表: |
SELECT * FROM USER_CONSTRAINTS
WHERE CONSTRAINT_NAME = 'PK_MEDIA';