Filemaker에서 mysql로 ​​테이블 구조 복사

5084 단어 MySQLFileMaker

배경


  • 사내 업무에서 사용하는 Filemaker 데이터베이스를 mysql로 ​​대체하는 문제
  • 테이블 구조를 복사하고 싶습니다
  • 필드 수가 500도 있다고! 손으로 하고 싶지 않아
  • html 내보내기에서 성형하여 sql 문 만들기 → 방법 1
  • Filemaker 스크립트로 테이블 구조를 만드는 sql 문 만들기 → 방법 2
  • ODBC 연결을 사용하여 Filemaker 스크립트로 테이블 만들기 → 방법 3
  • ODBC 연결을 사용하여 Filemaker 스크립트에서 필드 추가 → 방법 4
  • 테이블 구조가 완료되면 CSV 내보내기로 데이터 복사 가능
  • 환경 : Filemaker pro 11 advanced
  • 더 쉬운 방법이있을 수 있습니다

  • 방법 1 html 내보내기에서 성형하여 sql 문장 만들기


  • HTML 내보내기에서 <TH>로 묶인 필드 이름의 배열을 출력합니다
  • 텍스트 편집기로 성형하여 sql 문 만들기
  • 수동이므로 번거로움
  • 이상한 곳에서 오류가 발생하지 않음
  • 필드 이름은 일본어, 형식은 text, 나중에 원하는대로 변경
  • <HTML>
    <HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=x-sjis"></HEAD>
    <BODY><TABLE BORDER=1>
    <TR>
    <TH>商品番号</TH>
    <TH>商品名</TH>
    <TH>販売価格</TH>
    <TH>登録日時</TH>
    <TH>修正日時</TH>
    <TH>販売停止</TH>
    </TR>
    ...
    
    CREATE TABLE 商品 (
     商品番号 text,
     商品名 text,
     販売価格 text,
     登録日時 text,
     修正日時 text,
     販売停止 text,
    )
    

    방법 2 Filemaker 스크립트로 테이블 구조 만들기 sql 문 만들기


  • 스크립트를 실행하는 것만으로 sql 문을 할 수있는 단기능
  • 출력용 텍스트 필드를 전역으로 제공
  • 간편
  • ODBC 사용하지 않기 때문에 심플


  • 変数を設定 [ $sql; 値:"CREATE TABLE 商品 (¶" ]
    レコード/検索条件/ページへ移動 [ 最初の ]
    フィールドへ移動 [ ローカル::商品番号 ]
    Loop
    変数を設定 [ $sql; 値:$sql & Get ( アクティブフィールド名 ) & " text" ]
    次のフィールドへ移動
    Exit Loop If [ Get ( アクティブフィールド名 ) = "sql" ]
    変数を設定 [ $sql; 値:$sql & ",¶" ]
    End Loop
    フィールド設定 [ ローカル::sql; $sql & "¶)" ]
    
    CREATE TABLE 商品 (
    商品番号 text,
    商品名 text,
    販売価格 text,
    登録日時 text,
    修正日時 text,
    販売停止 text
    )
    

    준비


  • 100,000건 500필드도 있으면 조작할 때마다 다시 되므로 사전 준비해 둔다
  • 1 레코드 만 표시
  • 필드 설정에서 SQL을 전역으로 추가
  • 레이아웃 편집 새로운 레이아웃 목록 접기 전체 필드
  • 양식 형식 표시 모든 필드가 표시되는지 확인
  • 스크립트 편집
  • 스크립트 실행
  • 계산 필드가 제외되는 것 같습니다

  • 방법 3 ODBC 연결을 사용하여 Filemaker 스크립트로 테이블 만들기


  • OS ODBC 연결 설정
  • FM의 외부 데이터 소스 설정
  • 이런 설정을 하고 수고하는 것보다 방법 2가 간단 확실
  • 데이터가 모두 수치이면 int형으로 하거나 복잡한 스크립트 처리를 시키고 싶을 때
  • 레코드 사본도 작성하면 가능
  • 変数を設定 [ $sql; 値:"CREATE TABLE 商品 (¶" ]
    レコード/検索条件/ページへ移動 [ 最初の ]
    フィールドへ移動 [ ローカル::商品番号 ]
    Loop
    変数を設定 [ $sql; 値:$sql & Get ( アクティブフィールド名 ) & " text" ]
    次のフィールドへ移動
    Exit Loop If [ Get ( アクティブフィールド名 ) = "sql" ]
    変数を設定 [ $sql; 値:$sql & ",¶" ]
    End Loop
    変数を設定 [ $sql; 値:$sql & "¶)" ]
    SQL を実行 [ ODBC データソース: 「fm2sql」; 計算済みの SQL テキスト: $sql ]
    
    

    방법 4 ODBC 연결을 사용하여 Filemaker 스크립트에서 필드 추가


  • ALTER TABLE ADD 사용
  • 필드 수가 터무니없는 경우 등 한발 쓰기가 위험할 때
  • SQL を実行 [ SQL テキスト: CREATE TABLE 商品 ( dummy INT ) ]
    レコード/検索条件/ページへ移動 [ 最初の ]
    フィールドへ移動 [ ローカル::商品番号 ]
    Loop
    変数を設定 [ $sql; 値:"ALTER TABLE 商品 ADD " & Get(アクティブフィールド名) & " TEXT;" ]
    SQL を実行 [ ODBC データソース: 「fm2sql」; 計算済みの SQL テキスト: $sql ]
    次のフィールドへ移動
    Exit Loop If [ Get ( アクティブフィールド名 ) = "sql" ]
    End Loop
    

    좋은 웹페이지 즐겨찾기