아래 id는 임의로 정하는 것 같은데요, table name="resource_packages"는 어떻게 정하는 건가요?

 

modules/resource/queries/plusPackageStar.xml

<query id="plusPackageStar" action="update">
    <tables>
        <table name="resource_packages" />
    </tables>
    <columns>
        <column name="voted" var="voted" notnull="notnull" />
        <column name="voter" default="plus(1)" notnull="notnull" />
    </columns>
    <conditions>
        <condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" />
        <condition operation="equal" column="package_srl" var="package_srl" filter="number" notnull="notnull" pipe="and" />
    </conditions>
</query>

 

  • ?

    xml 파일 이름과 테이블 이름을 동일하게 하셔야 됩니다.

     

    xe_resource_packages.xml (x)

    resource_packages.xml (o)

  • ? profile
    그런 규칙이 있군요 ㅎㅎ 몰랐네요. 감사합니다.
  • ? profile
    그런데, 파일명과 쿼리문 아이디는 동일한데,
    저기선 테이블 네임 부분은 서로 다른데 왜 그런거죠?;

    plusPackageStar.xml / id="plusPackageStar"
    table name="resource_packages" <-- 이건 뭐랑 같은 거죠? 찾아봐도 같은 부분이
    디비에도, 파일에도 없는데;;
  • ?
    답변이 조금 오해 소지가 있겠군요.
    xml 파일이름과 테이블 이름이 동일해야하는건 schemas/ 에 정의할때..
    이 때는 동일해야하고 ( 단 prefix 부분은 빼고 해주셔야하죠 )

    일반적인 query 의 파일명은 아무 상관없습니다.
    테이블명 짤때도 모듈명과는 무관하고요

    disp 나 proc 형태의 함수들의 경우에만, 모듈명이 반드시 포함되어야하는 부분만 주의하시면 됩니다
  • ? profile

    세진님 덕분에 조금 더 이해가 잘 되었습니다. 상세한 답변 감사합니다.
    감사합니다 (__)/ 열심히 배우겠습니다.

     

    ps. table name 저 부분도 임의로 그냥 하면 되는 것이죠?

  • profile ?
    table name 자체는 제약이 없어요
    그런데 아무래도 사용하려면 어딘가에 schema 로 정의가 되어있어야하겠죠
    최초 schema 에 정의가 안 되어있는 칼럼값의 경우 숫자는 insert가 되는데 한글은 insert가 안 되니 (영문은 기억이 안 나네요) 가능하면 꼭 사용하려는 모든 칼럼이 해당 schema 의 xml 에 정의가 되어있는게 좋습니다
    ( 그래도 Core 자체에 있는 schema 의 table 에 칼럼 추가할때, 단순히 class 에서 칼럼 업데이트한다고 해서 작동이 안 되는 경우가 있죠. 일일이 schema 자체도 수정을 해줘야 insert 가 되거든요 )
  • ? profile
    schema라는 건 코어에만 있는 건가요?
    스키마 자체를 수정한다는 건 코어 일부를 변경한다는 말씀이신건가요?