일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- rust 기초
- 스마트컨트렉트 함수이름 중복 호출
- 스마트컨트렉트테스트
- vue기초
- 깃허브명령어
- 프록시배포구조
- nestjs 튜토리얼
- SBT표준
- 머신러닝기초
- ambiguous function description
- 러스트기초
- ethers typescript
- 스마트 컨트렉트 함수이름 중복
- multicall
- ethers websocket
- 러스트 기초
- ethers v6
- 러스트 기초 학습
- Vue
- 컨트렉트 동일한 함수이름 호출
- ethers type
- chainlink 설명
- ethers
- Vue.js
- 스마트컨트렉트 예약어 함수이름 중복
- 스마트컨트렉트프록시
- nest.js설명
- 컨트렉트 배포 자동화
- 체인의정석
- git rebase
- Today
- Total
목록개발/database (29)
체인의정석
어떤 행을 수정할 때 키 값으로만 접근하도록 기본값이 설정되어 있는 에러이다.이를 해결하기 위해서는 mysql workbench의 설정값을 바꿔주거나 Settings 먼저 누르고맨 닡에 SafeUpdates를 해제해 주면 된다.아니라면 일회성으로는set sql_safe_updates=0;명령어를 실행시켜 주면 된다.
1. Nest.js 설치코드 1. Nest 설치 npm install -g @nestjs/cli 2. 설치확인 nest --version 3. netst new "프로젝트이름" 해당 명령어를 쓰게 되면 express generator 처럼 알아서 기본 틀이 만들어지게 된다. nest new cassandra-server ⚡ We will scaffold your app in a few seconds.. ? Which package manager would you ❤️ to use? (Use arrow keys) ❯ npm yarn pnpm 생성된 파일구조는 다음과 같음을 확인할 수 있었다. src/: 소스 코드가 위치하는 주 디렉토리. app.controller.ts: 애플리케이션의 컨트롤러. 요청을 처..
명령어 1. brew 로 카산드라 설치 brew install cassandra 2. cassandra 시작 brew services start cassandra 3. 카산드라의 쿼리 언어인 CQL 사용 Cassandra Query Language (CQL): Cassandra uses CQL for queries. You can interact with Cassandra using the CQL shell (cqlsh). cqlsh Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.1.0 | Cassandra 4.1.3 | CQL spec 3.4.6 | Native protocol v5] Use HELP for help. cqlsh> 4. 콘솔에 들어가졌다면..
1. 인덱싱 체크하기 먼저 인덱싱은 조건 절에 들어가는 칼럼들 위주로 넣었다. 인덱싱을 다중 키로 넣는 경우 여러개도 가능하지만 블로그들을 찾아보니 5개 정도가 적당하다고 한다. 나는 아래 블로그를 학습하고 나서 인덱스를 걸었는데 매우 잘 나와있는 포스팅이다. https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-%EC%9D%B8%EB%8D%B1%EC%8A%A4index-%ED%95%B5%EC%8B%AC-%EC%84%A4%EA%B3%84-%EC%82%AC%EC%9A%A9-%EB%AC%B8%EB%B2%95-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC [MYSQL] 📚 인덱스(index) 핵심 설계 & 사용 문법 💯 총정리 인덱스의 개념 인덱스..
시퀄라이즈를 이용하게 되면 기본적으로 created at, updated at을 만들어 준다. 다만 이렇게 할 경우 raw query 대신에 시퀄라이즈의 문법을 써주어야 한다. 내가 이번에 작업했던 쿼리는 upsert() 라는 시퀄라이즈 함수를 사용하면 되었는데 나는 raw query로 작업을 하였다. 그러다 보니 raw query로 Update, create를 하는 방법을 찾게 되었다. const table = sequelize.define(table_name, { createdAt: { type: DataTypes.DATE, field: 'created_at', defaultValue: sequelize.literal('CURRENT_TIMESTAMP'), }, updatedAt: { type: Da..
현재 데이터의 상태를 업데이트 하는 쿼리를 만들다가 데이터가 있는지 DB접근 1 번 그리고 데이터가 없다면 삽입 있다면 업데이트를 하는 로직을 따로 만들었다. 그러나 이를 한번에 할 수 있는 방법이 있을거 같아 찾아보니 "MySQL에서는 INSERT ... ON DUPLICATE KEY UPDATE를 사용하여 레코드가 존재하면 업데이트하고, 존재하지 않으면 삽입하는 동작을 한 번의 쿼리로 수행할 수 있습니다. 그러나 먼저 이를 사용하려면 해당 테이블에 기본 키나 유니크 키 제약 조건이 있어야 합니다." 라고 챗 GPT가 알려줬다. const query = ` INSERT INTO DBNAME.${table_name} (A, B) VALUES ('${a}', '${b}') ON DUPLICATE KEY U..
먼저 FROM 2개의 테이블을 합칠 때는 JOIN을 사용해야 한다. select * from 테이블1 AS 별명1 INNER JOIN 테이블명2 AS 별명2 ON 테이블1.block_number = 테이블명2.block_number where 조건; 이런 식으로 가져오고자 하는 테이블 2개를 선택한 후에 기준점으로 잡을 열을 ON으로 두고 where 조건을 걸면 된다. 이를 기본으로 하여 여러 테이블에서 합산한 값을 바탕으로 여러 조건을 필터링 하여 결과 값을 내는 경우 아래와 같이 낼 수 있다. SELECT MAX(row1) as 별명1, rowB as 별명2 FROM ( SELECT row1, row2 FROM 테이블1 UNION ALL SELECT row1, row2 FROM 테이블2 ) AS 테이..
컨트렉트와 개발할 때는 총 3가지의 단계가 존재한다. 1. DB의 SQL 2. 백엔드의 데이터 처리 3. 스마트컨트렉트의 데이터 처리 무언가 작업을 하거나 계산할 때 1,2,3의 처리를 우리는 모두 다 해주어야 한다. 상황에 따라 다르지만 컨트렉트에서의 처리는 최대한 줄여주고 그 다음으로 백엔드의 처리를 최대한 줄여주고 최대한의 작업을 SQL에서 작업해야 빠른 처리가 가능하다. 1 -> 2의 호출회수를 줄이고 2 -> 3의 호출 회수를 줄이는 것이 우선순위이다. 데이터베이스에서 자료를 가져오면서 복잡한 쿼리를 작성하여 정리해 두고자한다. STEP 1.) 여러 테이블에서 조회를 같이 해와서 최대로 큰 블록을 가져오는 경우의 쿼리는 다음과 같이 작성한다. 먼저 FROM 안에 SELECT를 넣을 때는 AS A..