Import large CSV file into PostGIS
You are almost there but I think the problem might be the table you are loading into.
You must have already had a table created in PostGIS with the correct column types
For example
CREATE TABLE nycdata (
BOROUGH varchar,
BLOCK varch,
DATE date,
VERSION numeric);
But you need to match the column type with the same type of data in the CSV.
You can see all the Data Types here http://www.postgresql.org/docs/9.1/static/datatype.html
Once you have created the table you can then use the original command
COPY nycdata FROM '/Users/macbook/data.csv' DELIMITERS ',' CSV HEADER;
You will then need to create indexes and a geometry
This can also be done with GDAL using a .vrt file, although it can be memory intensive.
You vrt would look like:
<OGRVRTDataSource>
<OGRVRTLayer name="feature_name">
<SrcDataSource>your_csv.csv</SrcDataSource>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>EPSG:27700</LayerSRS>
<GeometryField encoding="PointFromColumns" x="Eastings" y="Northings"/>
</OGRVRTLayer>
</OGRVRTDataSource>
Then simply:
ogr2ogr -progress -nln table_name_doesnt_need_to_exist -skipfailures PostgreSQL PG:"dbname='dbname' host='localhost' port='5432' user='username' password='password'" vrt_filename.vrt
For a full guide see:
Loading CSV OS CodePoint Data into PostGIS